我有一个文件,里面有名字、密码和像下面这样的朋友
john;9999;dave
sam;8888;
dave;7777;alex,john
alex;6666;john,sam,dave
我想像这样将元素添加到字典中
dict1={names:"password"} ,
dict2={names:"friends"}
预期输出:
{'john':9999,'sam':8888,'dave':7777,'alex':6666}
{'john':dave,'sam':,'dave':alex,john,'alex':john,sam,dave}
答案 0 :(得分:1)
dict1={}
dict2={}
with open('a.txt') as f:
for line in f:
splitted_data=line.split(';')
dict1[splitted_data[0]]=splitted_data[1]
dict2[splitted_data[0]] = splitted_data[2:]
print(dict1) # {'dave': '5678', 'john': '4567', 'sam': '6789', 'alex': '1234'}
print(dict2) # {'dave': ['alex,john\n'], 'john': ['dave\n'], 'sam': ['\n'], 'alex': ['john,sam,dave']}
答案 1 :(得分:1)
您可以在文件流上使用 map 来完成此操作。
# Helper function
def myfunc(x):
x_parts = x.split(';')
return (x_parts[0], x_parts[1]), (x_parts[0], x_parts[2].strip())
with open(fn) as f:
dict1, dict2 = tuple(map(dict, list(zip(*list(map(myfunc, f))))))
print(dict1)
print(dict2)