Skip to main content
 首页 » 编程设计

python之文件,剥离每一行并添加到字典中的键

2025年05月04日9dflying

我们如何拆分文本文件中的第一行并将它们作为键,以及 之后的每一行都是每个键的值。 没有任何导入

我目前拥有的:

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']}