python 语言,list中合并重复字典,将value相加
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 语言,list中合并重复字典,将value相加相关的知识,希望对你有一定的参考价值。
info_list = [name:'apple',value:2,name:'orange',value:5,name:'apple',value:5]
==》》》
info_list = [name:'apple',value:7,name:'orange',value:5]
现在info_list中有两项重复的apple,如何合并,求教大神,并将值相加?
info_dic=
for d in info:
if d['name'] not in info_dic:
info_dic[d['name']]=d['value']
else: info_dic[d['name']]+=d['value']
new_info=[]
for n,v in info_dic.items():
new_info.append('name':n,'value':v)
print(new_info)['name': 'apple', 'value': 7, 'name': 'orange', 'value': 5]本回答被提问者和网友采纳 参考技术B Set ,去重
python 两个list合并成字典
第一个list:
['PID', 'USERNAME', 'THR', 'PRI', 'NICE', 'SIZE', 'RES', 'STATE', 'TIME', 'WCPU', 'COMMAND']
第二个list:
['32', 'root', '1', '-36', '-155', '0K', '16K', 'WAIT', '0:00', '0.00%', 'swi3:', 'ip6opt', 'ipopt']
分别一一对应:第二个list中'swi3:', 'ip6opt', 'ipopt'作为一个元素对应第一个list中的COMMAND
转换字典格式:dict='PID':'32','USERNAME':'root',......,'COMMAND':'swi3: ip6opt ipopt'
怎么把这两个list转换成一个dict
代码如下:
keys = ['PID', 'USERNAME', 'THR', 'PRI', 'NICE', 'SIZE', 'RES', 'STATE', 'TIME', 'WCPU', 'COMMAND']items = ['32', 'root', '1', '-36', '-155', '0K', '16K', 'WAIT', '0:00', '0.00%', 'swi3:', 'ip6opt', 'ipopt']
dt = dict()
keys_len = len(keys)
items_len = len(items)
# 先读取除最后一个key写入字典
for i in range(keys_len-1):
dt[keys[i]] = items[i]
# 读取最后一个key和值写入字典
command_key = keys[i]
command_text = []
for i in range(keys_len-1,items_len):
command_text.append(items[i])
dt[command_key] = ' '.join(command_text)
# 输入字典结果
print(dt)
输出如下:
'PID': '32',
'PRI': '-36',
'RES': '16K',
'SIZE': '0K',
'STATE': 'WAIT',
'THR': '1',
'TIME': '0:00',
'USERNAME': 'root',
'WCPU': 'swi3: ip6opt ipopt' 参考技术A
先对list2行进处理,然后再合并
ls1 = ['PID', 'USERNAME', 'THR', 'PRI', 'NICE', 'SIZE', 'RES', 'STATE', 'TIME', 'WCPU', 'COMMAND']ls2 = ['32', 'root', '1', '-36', '-155', '0K', '16K', 'WAIT', '0:00', '0.00%', 'swi3:', 'ip6opt', 'ipopt']
ls3 = ls2[0:10]
ls3.append(" ".join(ls2[10:]))
d =
for i in range(len(ls1)):
d[ls1[i]] = ls3[i]
print d 本回答被提问者和网友采纳 参考技术B l1 = ['PID', 'USERNAME', 'THR', 'PRI', 'NICE', 'SIZE', 'RES', 'STATE', 'TIME', 'WCPU', 'COMMAND']
l2 = ['32', 'root', '1', '-36', '-155', '0K', '16K', 'WAIT', '0:00', '0.00%', 'swi3:', 'ip6opt', 'ipopt']
d=dict(zip(l1[:-1],l2[:-3]))
d[l1[-1]]=l2[-3:]
print(d)
'COMMAND': ['swi3:', 'ip6opt', 'ipopt'],
'NICE': '-155',
'PID': '32',
'PRI': '-36',
'RES': '16K',
'SIZE': '0K',
'STATE': 'WAIT',
'THR': '1',
'TIME': '0:00',
'USERNAME': 'root',
'WCPU': '0.00%'
以上是关于python 语言,list中合并重复字典,将value相加的主要内容,如果未能解决你的问题,请参考以下文章