在Python的循环中向dictonary添加2个列表

时间:2016-11-18 13:34:34

标签: list python-3.x dictionary

我已经尝试了一段时间将2个列表添加到我创建的dictonary中。问题是,我想将它们运行到一个循环中,所以第一个dictonary运行10次,第二次运行只运行一次。 让我告诉你我的代码

list1 = [1,2,3,4,5,6,7,8,9,10]
list2 = ["Heart", "Spade", "Clubs", "Diamond"]

i = 0
k = 0
while i < len(list2):
    while k < len(list1):
        dictonary = dict(zip(list1, list2))
        k = k+1
    i = i+1
print(dictonary)

我得到的输出是:

{1: 'Heart', 2: 'Spade', 3: 'Clubs', 4: 'Diamond'}

我无法理解为什么它不会打印出来

{1: 'Heart', 2: 'Heart', 3: 'Heart' etc...}

我知道我的循环工作正常,但我可能会错过理解将两个列表一起添加到dictonary的概念? 非常感谢这里的一些帮助。 谢谢!

1 个答案:

答案 0 :(得分:0)

你想要做的事情无论如何都不会使用字典。

代码可以修改一下

list1 = [1,2,3,4,5,6,7,8,9,10]
list2 = ["Heart", "Spade", "Clubs", "Diamond"]
dictonary={}
i = 0
k = 0
print(len(list2))
while i < len(list2):
    k=0
    while k < len(list1):
        print(dictonary)
        dictonary[list1[k]]=list2[i]
        k = k+1
    i = i+1

但是,您可以使用外部循环的每次迭代覆盖字典键的值。所以dictonary的最终内容是{1:&#39; Diamond&#39;,2:&#39; Diamond&#39; 3:&#39; Diamond&#39;等...}

我认为您尝试实现的目标可以使用配对值列表完成:

list1 = [1,2,3,4,5,6,7,8,9,10]
list2 = ["Heart", "Spade", "Clubs", "Diamond"]
dictonary=[]
i = 0
k = 0
print(len(list2))
while i < len(list2):
    k=0
    while k < len(list1):
        print(dictonary)
        dictonary.append([list1[k],list2[i]])
        k = k+1
    i = i+1