【发布时间】:2015-01-27 23:31:27
【问题描述】:
我有以下问题。 我有以下两个列表:
d = ['E', 'T', 'A', 'O', 'I', 'N', 'S', 'H', 'R', 'D', 'L', 'C', 'U', 'M', 'W', 'F','G', 'Y', 'P', 'B', 'V', 'K', 'J', 'X', 'Q', 'Z']
list = ['Q', 'I', 'J', 'K', 'G', 'A', 'T', 'R', 'H', 'S', 'N', 'O', 'X', 'W', 'Z', 'V','B', 'P', 'Y', 'F', 'M', 'U', 'C', 'L', 'D', 'E']
我使用命令:rotation=dict(zip(list,d)) 来组合这些列表。但是,我得到以下字典:
dict = {'A': 'N', 'C': 'J', 'B': 'G', 'E': 'Z', 'D': 'Q', 'G': 'I', 'F': 'B', 'I': 'T','H': 'R', 'K': 'O', 'J': 'A', 'M': 'V', 'L': 'X', 'O': 'C', 'N': 'L', 'Q': 'E','P': 'Y', 'S': 'D', 'R': 'H', 'U': 'K', 'T': 'S', 'W': 'M', 'V': 'F', 'Y': 'P','X': 'U', 'Z': 'W'}
这完全不正常。 有没有办法正确组合这两个列表? 我的意思是将字母“E”(d 的第一个字母)映射到字母“Q”(列表的第一个字母)而不是“Z”。 'T' 也可以映射到 'I' 等等。
【问题讨论】:
-
1) 字典没有顺序 2) 停止使用 Python 关键字并将名称作为变量名
-
字典根据定义是无序的。集合模块中有一个 OrderedDict 类。
-
您的代码将
E映射到Z的原因是您将参数传递给zip的顺序不正确。
标签: python list dictionary