我有一个python文本文件如下 甚至; 0;即使; 1;奇 奇数; 0;奇数; 1;甚至
打开并读取此文件后,我需要返回一个嵌套字典,其中外层是每行中的第一个字,内部字典将下一个数字作为键,其旁边的值作为值。我怎么能用zip功能实现这个呢?
所以例如第一行的dict看起来像这样: {even:{0:even,1:odd}}
xref = defaultdict(dict)
for line in file:
list = line.strip().split(';')
for item in list:
xref[list[0]] = {}
答案 0 :(得分:0)
首先,您不能将list
用作变量名,因为list
是python中的关键字。也就是说,你走在正确的轨道上。这就是你想要的:
>>> xref = defaultdict(dict)
>>> for line in file:
alist = line.strip().split(';')
zlist = alist[1:]
xref[alist[0]] = dict(zip(zlist[::2], zlist[1::2]))
>>> xref
defaultdict(<type 'dict'>, {'even': {'1': 'odd', '0': 'even'}, 'odd': {'1': 'even', '0': 'odd'}})
请注意,内部字典的元素顺序与预期的不同,但默认情况下字典中的元素是无序的。
希望这有帮助。