将ZIP值添加到现有字典?

时间:2017-05-16 15:31:08

标签: python dictionary

基本上我有一个由管道(|)分隔的大文件。该文件有一个标题,后跟数据。我想把这个文件放到字典里。

文件示例:

A|B|C
1|2|3
4|5|6

我到目前为止做了以下事情:

positions = open(pos_file, 'r')  # Opens the position file to read
positions.seek(0)

columns = [x.strip() for x in g1_positions.readline().split('|')]

pos_hash = {}
for data in positions:
    values = [x.strip() for x in data.split('|')]  
    pos_hash.update (zip(columns, values))  

print (pos_hash.items())

问题是它无法添加多个记录,在这种情况下只包括最后一条记录。

我希望看到的是在字典中使用上面的例子:
{ [(A:1), (B:2), (C:3)], [(A:4), (B:5), (C:6)] }

但是我觉得更新功能会更新整个字典而不是附加。

1 个答案:

答案 0 :(得分:0)

尝试以下想法:

>>> columns = ['A', 'B', 'C']
>>> z = [['1', '2', '3'], ['4', '5', '6']]
>>> 
>>> pos_hash = []
>>> 
>>> for item in z:
...   pos_hash.append(dict(zip(columns, item)))
... 
>>> pos_hash
[{'A': '1', 'C': '3', 'B': '2'}, {'A': '4', 'C': '6', 'B': '5'}]