为了账号安全,请及时绑定邮箱和手机立即绑定

将列表转换为字典并添加重复的键值

将列表转换为字典并添加重复的键值

慕哥6287543 2021-12-16 16:38:17
我试图找到这样的字典值{'deepak': 0, 'nayak': 0}我试过这种方式d={}d['deepak'] = 0d['nayak'] = 0 f = [ '1, deepak, 15','2, nayak, 10', '3, deepak, 10', '4, nayak, 13']for lines in f:print(lines)##appropriate logic to excute#    print(d)预期的 o/p 应该是{'deepak': 25, 'nayak': 23}
查看完整描述

3 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

你几乎在那里


d = {}


f = [ '1, deepak, 15',

'2, nayak, 10',

 '3, deepak, 10',

 '4, nayak, 13']


for line in f:

    # by splitting on the comma and trailing space

    # you can unpack those three entries into a throw-away var,

    # k, and v and you only need to convert v to int

    _, k, v = line.split(', ')

    d[k] = d.get(k, 0) + int(v)


d

{'deepak': 25, 'nayak': 23}


查看完整回答
反对 回复 2021-12-16
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

d={}

d['deepak'] = 0

d['nayak'] = 0 

f = [ '1, deepak, 15',

'2, nayak, 10',

 '3, deepak, 10',

 '4, nayak, 13']

for lines in f:

    print(lines)

    ##appropriate logic to excute#

    line = lines.split(', ')

    d[line[1]] += int(line[-1])

print(d)


查看完整回答
反对 回复 2021-12-16
?
叮当猫咪

TA贡献1776条经验 获得超12个赞

您可以Counter从collections模块中使用,以减少使用常规 dict 时所需的一些样板文件


from collections import Counter


f = [

    '1, deepak, 15',

    '2, nayak, 10',

    '3, deepak, 10',

    '4, nayak, 13'

]


result = Counter()


for x in f:

    _, name, count = x.split(', ')

    result[name] += int(count)


print(result)


查看完整回答
反对 回复 2021-12-16
  • 3 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号