我一直在研究这段代码,但我找不到答案。
我有2个列表
point_values = [1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10]
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
我想设置a:1
和b:3
等等......我希望将它们放在一个名为point_letters
的词典中。
这是我的入门代码。
point_letters = {}
point_values = [1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10]
letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
for x in letters:
for i in point_values:
if point_letters[x] != i: # is what I'm trying to do
point_letters[x] = i
print(point_letters)
我该怎么做?
答案 0 :(得分:4)
point_letters = dict(zip(letters, point_values))
zip
列出了相应元素对; dict
将对列表转换为字典。
编辑:更改了dict名称。同时回应评论和发布的代码:
这很好,但我还没有学到这一点。有没有办法循环呢?
通常,在现实世界中,您使用上述方法。 for
非常低级,您可以尽可能避免使用它。对于课程,我不会解决你的问题,而是给你提示(所以它不是抄袭):
您希望为同一letters[i]
point_values[i]
和i
i
应该从0
转到最大索引 - 比列表长度少一个
您可以使用len
您可以使用range
(Python 3)或xrange
(Python 2)获取范围
在您的代码中,
有两个循环不是你需要做的
if
不可能是真的。
EDIT2:已更改"数组" to" list&#34 ;,因为Python必须是一个特殊的雪花。