返回信息流一个文件内容是
1,北京
2,上海
2,广州
3,杭州
现在如何把其转化成一个字典
{'1':北京,'2':'[上海,广州]','3':杭州}
就是把文件中相同键值的值合并到一个列表中,最终转换到字典
这是一条镜像帖。来源:北邮人论坛 / python / #15166同步于 2016/7/27
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖
有个逻辑请教下大家
henceman
2016/7/27镜像同步13 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
【 在 panshanwhut 的大作中提到: 】
: 我擦咧,mapreduce,分分钟解决啊!一定要用Python么?
不要这么高级呀,处理个小文件,写不出来了~!~熟悉python的大神指导下
from collections import defaultdict
with open("blah") as f: txt = f.read()
d = defaultdict(list)
for line in f.splitlines(): k,v = line.split(","); d[k].append(v)
print(d)
【 在 nuanyangyang 的大作中提到: 】
: from collections import defaultdict
with open("blah") as f: txt = f.read()
d = defaultdict(list)
for line in f.splitlines(): k,v = line.split(","); d[k].append(v)
print(d)
多谢暖神,又学了个用法,就是那个for line in f.splitlines()笔误了应该是txt.splitlines?
嗯。是
【 在 henceman 的大作中提到: 】
: with open("blah") as f: txt = f.read()
: d = defaultdict(list)
: for line in f.splitlines(): k,v = line.split(","); d[k].append(v)
: ...................
d = {}
for line in sys.stdin:
a, b = map(lambda x: x.strip(), line.split())
d[a] = d.get(a, [])
d[a].append(b)
d = {}
for line in sys.stdin:
a, b = map(lambda x: x.strip(), line.split())
d[a] = d.get(a, [])
d[a].append(b)
lines = open(filename).readlines()
dic = {}
for line in lines:
line = line.strip()
dic.setdefault(line.split(',')[0], []).append(line.split(',')[1])