我们如何拆分文本文件中的第一行并将它们作为键,以及 之后的每一行都是每个键的值。 没有任何导入
我目前拥有的:
new_dict = {}
with open(file, 'r') as f:
for line in f:
list = line.strip().split(',')
for item in list:
new_dict[item] = []
输出的内容:{'name': [], 'last': [], 'middle': []}
现在,我如何移动到下一行,在逗号处拆分并将第一个元素附加到第一个键,将第二个元素附加到第二个键,等等。
file:
name, last, middle
bob, jones, m
jones, bob, k
alice, lol, f
最终结果:
{'name': ['bob', 'jones', 'alice'], 'last': ['jones', 'bob', 'lol'], 'middle': ['m', 'k', 'f']}
请您参考如下方法:
new_dict = {}
names = [] # used map 0, 1, 2 to `name`, `last`, `middle`
with open('/path/to/test.txt') as f:
# Handle header (the first) line: `name, last, middle`
for name in next(f).split(','): # split fields by `,`
name = name.strip() # remove surrounding spaces
names.append(name)
new_dict[name] = [] # initialize dictionary with empty list.
# Handle body.
for line in f:
# enumerate(['bob', 'jones', 'm']) return an interator
# that generates (0, 'bob'), (1, 'jones'), (2, 'm')
for i, value in enumerate(line.split(',')):
new_dict[names[i]].append(value.strip())
print(new_dict)
输出:
{'middle': ['m', 'k', 'f'], 'last': ['jones', 'bob', 'lol'], 'name': ['bob', 'jones', 'alice']}
