[英]Pack dictionary with values separated by comma
我有一個這樣的文本文件:
key1 value1 A
key1 value2 B
key1 value3 A
key2 value1 A
key2 value2 B
我正在嘗試將其作為字典打開,並打印以逗號分隔的鍵和值的列表,因此最終看起來像這樣:
key1 value1,value2,value A,B,A
key2 value1,value2,value A,B
我正在嘗試以下代碼:
f = open('file.txt', 'r')
answer = {}
for line in f:
list = ",".join(map(str,f))
print list
但這沒用
有什么想法我做錯了嗎? 謝謝你的幫助
from collections import defaultdict
with open('file.txt') as f:
answer = defaultdict(lambda: ([], []))
for line in f:
key, value, alpha = line.split()
answer[key][0].append(value)
answer[key][1].append(alpha)
for key, (values, alphas) in sorted(answer.items()):
print key, ','.join(values), ','.join(alphas)
輸出:
key1 value1,value2,value3 A,B,A
key2 value1,value2 A,B
您正在初始化字典,但隨后您再也不會在循環中使用它了。 請嘗試以下方法:
from collections import defaultdict
answers = defaultdict(list)
with open('file.txt') as inf:
for line in inf:
bits = line.rstrip().split()
answers[bits[0]].append(','.join(bits[1:]))
for key,values in answers.iteritems(): # in Python 3, use answers.items()
for value in values:
print('{} {}'.format(key, value))
另外,請勿將list
用作變量的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.