python字典中,有个文本, 两列值 1对多关系,请问怎么把key和value都放在字典里呢?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python字典中,有个文本, 两列值 1对多关系,请问怎么把key和value都放在字典里呢?相关的知识,希望对你有一定的参考价值。
例:1860,101000330
1861,101000335
1861,101000337
数据量有2万行,请问怎么操作?
这是什么意思?你没有说什么是key什么是value。到底想获得怎样的dict结构?
1对多如果用字典,典型值应该是这样:
1860: [101000330],
1861: [101000335, 101000337]
用defaultdict很容易实现。追问
具体点,怎么操作。。。
追答from collections import defaultdict
d = defaultdict(lambda: [])
with open('data.txt', 'rb') as f:
for line in f:
key, value = line[:-1].split(",")
d[key].append(value)
for k,v in d.iteritems():
print k, v
d =
for line in file.readlines():
line = line.replace('\\n','')
k_v = line.split(',')
if k_v[0] in d.keys():
d[k_v[0]].append(k_v[1])
else:
d[k_v[0]] = [k_v[1]]
print d 参考技术C d =
for line in text.split():
key, value = line.split(",")
d[key] = value追问
我就是这样操作的,请告诉我为什么不能更新
本回答被提问者采纳Python中,如何合并两个键相同,值为元祖类型的字典?
dicxs="李明":("男",19), "杨柳":("女",18), "张一凡":("男",18), "许可":("女",20), "王小小":("女",19), "陈心":("女",19)
diccj="李明": (78,89,90), "杨柳": (51,89,56), "张一凡": (82,90,96),"许可": (93,90,98), "王小小": (69,89,91), "陈心": (50,85,68)
C =
for key in list(set(dicxs) | set(diccj)):
if dicxs.get(key) and diccj.get(key):
C[key]= list(dicxs[key])+list(diccj[key])
elif dicxs.get(key):
C[key]=list(dicxs[key])
else:
C[key]=list(diccj[key]) 参考技术A 那你要怎么合并两个元组呢?追问
合并成 dicxscj="李明":("男",19,78,89,90)。。。。。。。。这样的
追答dicxscj = k: v + diccj[k] for k, v in dicxs.items() if k in diccj
结果为两个字典的交集
以上是关于python字典中,有个文本, 两列值 1对多关系,请问怎么把key和value都放在字典里呢?的主要内容,如果未能解决你的问题,请参考以下文章