我有一个简单而又混乱的问题。我有一个需要组织成字典的嵌套数据列表。当我输入代码:字典中的第一个键值对被下一个覆盖
>>>data = [['a', 1, 'b', 2], ['c', 3, 'd', 4], ['e', 5, 'f', 7]]
>>>dict1 = {}
>>>dict1[data[0][0]] = data[0][1]
>>>dict1
{'a': '1'}
我得到{ '一': '1'},如你所愿。但是,当我尝试将第二个(键,值)对写入我的字典中时,第一个条目缺失。
>>>dict1[data[0][2]] = data[0][3]
>>>dict1
{'b': '2'}
第一个入口去哪了?通过分片分配键和值似乎只是一个问题。之后添加的任何键值对都会添加到字典中。有没有一些解释呢?
编辑
奇怪的是,我自己的例子,似乎在我的shell终端工作正常,但它代表了实际的代码仍然是移动第一键,值对。以下是我遇到的麻烦的代码:
>>>data = [['even', '1', '0', '1', '1', '0', '1'], ['odd', '1', '0', '1', '1', '0', '1'], ['even', '1', '0', '1', '1', '0', 'x']]
>>> dict1 = {}
>>> dict1[data[0][1]] = data[0][2]
>>> dict1
{'1': '0'}
>>> dict1[data[0][3]] = data[0][4]
>>> dict1
{'1': '1'}
这对我很好。你确定你没有再次初始化'dict1'吗? – Christian
你在说什么切片? –
我不是再次初始化dict1,我的所有代码都是通过Python 3.3 Shell终端完成的。而@BurhanKhalid,你是对的,我的意思是索引,而不是切片。 – user3239106