Python 检查键的值是否与以前相同
我一直在研究这个代码,但我找不到答案Python 检查键的值是否与以前相同,python,dictionary,Python,Dictionary,我一直在研究这个代码,但我找不到答案 我有两张单子 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', '
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\u 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)
我该怎么做
point_letters = dict(zip(letters, point_values))
zip
制作对应元素对的列表dict
将成对列表转换为字典
编辑:更改了dict名称。此外,针对评论和张贴的代码:
这是伟大的,但我仍然没有学会这一点。有没有办法让它循环 通常,在现实世界中,您会使用上述方法
for
的级别非常低,您可能希望尽量避免使用它。在课堂上,我不会解决你的问题,而是给你一些提示(所以这不是剽窃):
- 您希望将
与字母[i]
配对,以获得相同的点[i]
i
应该从i
到最大索引-比列表长度小一个0
- 您可以使用
len
- 您可以使用
(Python 3)或range
(Python 2)获取范围xrange
- 有两个循环不是你需要做的
- 您的
永远不可能为真if
EDIT2:将“array”更改为“list”,因为Python必须是一个特殊的雪花。对于初学者来说,不要从与所需输出同名的
列表开始(dict
:),但更重要的是,到目前为止,您尝试了什么?呜呜,我太累了,我打错了。您面临的实际问题是什么?将这两个列表分配到一个由key=letters:value=point\u值组成的字典?你为什么不首先创建一个字典?这是一个家庭作业问题吗?这很好,但我还没有学会。有没有办法让它循环?