Python dict+的问题;列表的zip-在转换过程中丢失列表的前两个值?
测试列表和myShortList的处理方式有什么不同?!请注意,testList的输出在放入dict时缺少2个“testList”值!请帮忙Python dict+的问题;列表的zip-在转换过程中丢失列表的前两个值?,python,dictionary,zip,Python,Dictionary,Zip,测试列表和myShortList的处理方式有什么不同?!请注意,testList的输出在放入dict时缺少2个“testList”值!请帮忙 >>> testList ['1', 'targets', '0', 'alive', '1', 'unreachable'] >>> myShortList ['254', 'targets', '12', 'alive', '242', 'unreachable'] >>> dict(zip(myS
>>> testList
['1', 'targets', '0', 'alive', '1', 'unreachable']
>>> myShortList
['254', 'targets', '12', 'alive', '242', 'unreachable']
>>> dict(zip(myShortList[::2], myShortList[1::2]))
{'254': 'targets', '12': 'alive', '242': 'unreachable'}
>>> dict(zip(testList[::2], testList[1::2]))
{'1': 'unreachable', '0': 'alive'}
python字典必须具有唯一的键。在testList中,您将键“1”指定为值“targets”,然后将键“1”指定为值“unreachable”。这将覆盖初始“目标”值,只留下两个条目 更好的格式是将单词[“targets”、“alive”、“unreachable”]作为键,然后每个单词都有一个值。值不必是唯一的,这也允许您轻松地从字典中检索值
test_dict = dict(zip(testList[1::2], testList[::2]))
print(test_dict["targets"]) # Returns "1"
因为在Python中,dict应该具有唯一且不可变的键,在上一个示例中,您试图添加具有相同值的键,因此,它重写了第一个键 打印此文件:
print(list(zip(testList[::2], testList[1::2])))
输出:
[('1', 'targets'), ('0', 'alive'), ('1', 'unreachable')]
testList
有重复的键,这是dict中不能有的。