检查密钥的值是否与以前相同

时间:2016-10-13 01:08:44

标签: python dictionary

我一直在研究这段代码,但我找不到答案。

  1. 我有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']
    
  2. 我想设置a:1b:3等等......我希望将它们放在一个名为point_letters的词典中。

  3. 这是我的入门代码。

    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)
    

    我该怎么做?

1 个答案:

答案 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必须是一个特殊的雪花。