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)

转载于:https://www.cnblogs.com/apollo1616/p/10403172.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值