我是编程新手,需要一些帮助。我有一个包含很多名称和爱好的文本文件,看起来像这样:
杰克:工艺
彼得:远足
温迪:游戏
莫妮卡:网球
克里斯:折纸
苏菲:运动
莫妮卡:设计
重复了一些名字和爱好。我正在尝试使程序显示如下内容:
杰克:手工艺,电影,瑜伽
温迪:游戏,远足,运动
到目前为止,这是我的程序,但是从末尾开始的4行是不正确的。
def create_dictionary(file):
newlist = []
dict = {}
file = open("hobbies_database.txt", "r")
hobbies = file.readlines()
for rows in hobbies:
rows1 = rows.split(":")
k = rows1[0] # nimi
v = (rows1[1]).rstrip("\n") # hobi
dict = {k: v}
for k, v in dict.items():
if v in dict[k]:
最佳答案
在这种情况下,我将使用defaultdict。
import sys
from collections import defaultdict
def create_dictionary(inputfile):
d = defaultdict(list)
for line in inputfile:
name, hobby = line.split(':', 1)
d[name].append(hobby.strip())
return d
with open(sys.argv[1]) as fp:
for name, hobbies in create_dictionary(fp).items():
print(name, ': ', sep='', end='')
print(*hobbies, sep=', ')
您的例子给我这个结果:
Sophie: sport
Chris: origami
Peter: hiking
Jack: crafting
Wendy: gaming
Monica: tennis, design
关于python - 如何将文本文件(name1:hobby1 name2:hobby2)改成文本文件(name1:hobby1,hobby2 name2:hobby1,hobby2)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52747523/