【发布时间】:2018-08-05 10:11:01
【问题描述】:
我第一次搞乱字典,出现了一些让我感到困惑的事情。使用两个列表创建一个新字典,关键部分的列表术语的顺序似乎是错误的。这是我的代码:
list1 = ["a", "b", "c", "d"]
list2 = [5,3,7,3]
newDict = {list1[c]: number for c, number in enumerate(list2)}
print(newDict)
这给了我以下信息:
{'a': 5, 'd': 3, 'c': 7, 'b': 3}
为什么会这样?当然,从列表中获取术语的“c”值是从 0 开始向上的,那么为什么不创建具有相同顺序字母的字典呢?
谢谢。
【问题讨论】:
-
字典是无序的数据结构。
-
请注意,您可以只使用
dict(zip(list1, list2)) -
3.6Dictionaries are unordered之前的版本 -
通常我会,但这是一个物理作业,不希望我们使用我们尚未正式教授过的内容。这就是我实际上使用字典的原因。不过还是谢谢。
-
@bro-grammer 从技术上讲,在 Python 3.6 中,字典保留插入顺序的事实是一个实现细节。它将成为 >= 3.7 版本规范的一部分
标签: python python-3.x list dictionary for-loop