将文本中的元素添加到字典中

时间:2020-12-19 14:50:20

标签: python

我有一个文件,里面有名字、密码和像下面这样的朋友

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}

2 个答案:

答案 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)