我尝试过以下代码:目的是生成一个字典,其中每个键都有一个列表作为值。第一次迭代顺利进行并根据需要生成项目,但第二个循环(嵌套for循环)不会按预期生成列表。
请帮我解决这个简单的代码。它一定有问题,代码如下:
help(read.table)
结果如下:
schop = [1, 3, 1, 5, 6, 2, 1, 4, 3, 5, 6, 6, 2, 2, 3, 4, 4, 5]
mop = [1, 1, 2, 1, 1, 1, 3, 1, 2, 2, 2, 3, 2, 3, 3, 2, 3, 3]
mlist = ["1","2","3"]
wmlist=zip(mop,schop)
title ={}
for m in mlist:
m = int(m)
k=[]
for a,b in wmlist:
if a == m:
k.append(b)
title[m]=k
print(title)
为什么第二个键和第三个键都有一个空列表?
谢谢!
答案 0 :(得分:7)
您的代码将在Python 2中按预期工作,其中zip
创建元组列表。
在Python 3中,zip
是一个迭代器。一旦你迭代它,它就会耗尽,所以你的第二个和第三个for
循环将没有任何东西可以迭代。
这里最简单的解决方案是从迭代器创建一个列表:
wmlist = list(zip(mop,schop))
答案 1 :(得分:-1)