• python列表套字典数据类型转换


    1.题目

    list3 = [
        {'name':'Alex','hobby':'抽烟'},
        {'name':'Alex', 'hobby':'喝酒'},
        {'name':'Alex', 'hobby':'烫头'},
        {'name':'Alex', 'hobby':'Massage'},
        {'name':'wusir', 'hobby':'喊麦'},
        {'name':'wusir', 'hobby':'街舞'},]
    # 将以上列表转化成下列样式:
    # list4 = [
    #     {'name':'alex','hobby_list':['抽烟','喝酒','烫头','Message']},
    #     {'name':'wusir','hobby_list':['喊麦','街舞']}]
    

    2.解答

    list4 = []
    for i in list3:  # 循环list3, 得出每一个字典, ①
        # 第二次添加时候,判断i['name']在不在新建的字典里面  ,就要循环新形成的list4这个列表,找到name的对应值
        for j in list4:
            if j['name'] == i['name']:
                j['hobby_list'].append(i['hobby'])
                break
        else:
            dic = {}  # 建立一个新字典②
            dic['name'] = i['name']  # 将每个值赋值到新的字典里面③
            dic['hobby_list'] = [i['hobby']]  # 将每个值赋值到新的字典里面,这里是一个列表③
            list4.append(dic)  # 将字典添加到list4里面  ④
    
    for ren in list3: # {"name": "alex", "hobby": "抽烟"},
        for el in list4:
            if el['name'] == ren['name']:
                el['hobby_list'].append(ren['hobby'])
                break
        else:
            dic = {}
            dic['name'] = ren['name']
            dic['hobby_list'] = [ren['hobby']]
            list4.append(dic) # 第一个人进去
    print(list4)
    
    
  • 相关阅读:
    leetcode之Unique Binary Search Trees
    c++ 非常量引用产生临时对象
    redis的启动脚本
    leetcode 之 Insertion Sort List
    leetcode 之 Product of Array Except Self
    一致性hash的由来和原理
    我的vim 配置
    【原创】html页面清除浮动的几种方法
    实现本页面跳转的几种方式
    php输出语句用法总结
  • 原文地址:https://www.cnblogs.com/apollo1616/p/10403172.html
Copyright © 2020-2023  润新知