python 如何将列表转为字典,key值相同则合并value

图一为excel数据,如何将其变成{‘齐建国’:[13,33], '齐二石':[38], '黄鲁成':[26], '黄津孚':[31]}

a='齐建国 齐建国 齐二石 黄鲁成 黄津孚'.split()
b=[13,33,38,26,31]
d={}
for x in range(len(a)):
if a[x] in d:
d[a[x]]+=[b[x]]
else:
d[a[x]]=[b[x]]
print(d)

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-07-10
单纯从数据结构上来讲的话,字典的数据结构是散列,也就是哈希表,它是无序的,而列表的数据结构是链表,是有序的,所以想把字典转换成列表并且保持顺序不变,是不可行的。

题主可以使用OrderedDict(Python 2.7+)有序字典,OrderedDict是dict的子类,它记住了内容添加的顺序。

另外如果想把字典的key转换成列表,使用dict.keys()就可以了。本回答被网友采纳
第2个回答  2019-07-10

import pandas as pd

df=pd.DataFrame({'author':'齐建国 齐建国 齐二石 黄鲁成 黄津孚'.split(),'class':[13,33,38,26,31]}
)
print(df.groupby('author')['class'].apply(lambda x:x.tolist()).to_dict())

第3个回答  2019-07-10
mobile=[['apple','ios','100','10'],['pear','android','200','20'],['apple','ios','500','50'],['pear','android','600','60']]
mobiledict={}
for elem in mobile:
key=(elem[0],elem[1])
if key in mobiledict:
mobiledict[key][0]+=int(elem[2])
mobiledict[key][1]+=int(elem[3])
else:
mobiledict[key]=[int(elem[2]),int(elem[3])]
print(mobiledict)
第4个回答  2019-07-10
python是当下十分火爆的编程语言,尤其在人工智能应用方面。如果有心从事编程方向的工作,最好到专业机构深入学习、多实践,更贴近市场,这样更有利于将来的发展。
相似回答