蟒纹项目提供了大量的成果

蟒纹项目提供了大量的成果

问题描述:

a = [1,2,3] 
b = [4,5,6] 
#i have 2 lists 
for x in a: 
for y in b: 
    print x,' vs ',y 

后来我蟒纹项目提供了大量的成果

1比4,1比5,1比6 ,2比4 ......等等

我只需要3的结果: - 1对上的4 2比5 3比6

平均数第一项与b和第二与第二和第三3个第一项RD 请帮我

其他的答案都很好,另一种方法是使用枚举。

for i, x in enumerate(a): 
    print x," vs ", b[i] 

这会生成一个压缩的排序列表,其中每个值都与其列表中的索引值配对。例如。 enumerate([1, 2, 3]) => [(0, 1), (1, 2), (2, 3)]

+0

如果清单是有序的,索引是一个简单的计数,这是一个更清洁,更pythonic的解决方案。 –

+0

列举(一)工作得很好 – Harry1992

a = [1,2,3] 
b = [4,5,6] 

for first, second in zip(a,b): 
    print(first, ' vs ', second) 

zip联系在一起的ab值。所以zip(a,b)的第一个元素是[1,4],下一个元素是[2,5]等等。 请注意,zip会创建一个迭代器,因此您无法通过索引直接访问元素(zip(a,b)[1]不起作用)。

+0

感谢它的工作原理 – Harry1992

+0

但是还有一个问题: – Harry1992

试试这个:

a = [1,2,3] 
b = [4,5,6] 
[print('{0} vs {1}'.format(x,y)) for (x,y) in zip(a, b)] 

邮编会加入你的两个列表成为((1,4),(2,5),(3,6))

+0

除了语法错误之外,这一个根本不起作用。 – LcdDrm

试试这个兄弟:

x = [1, 2, 3] 
y = [4, 5, 6] 

for i, j in zip(x, y): 
print i + "/" + j 

它会给你:

1/4 
2/5 
3/6 

同时检查:"for loop" with two variables?

+0

感谢兄弟的工作 – Harry1992

邮编将是你的使用情况知府。

更多关于邮编: https://docs.python.org/2/library/functions.html#zip

a = [1,2,3] 
b = [4,5,6] 
for x in zip(a,b): 
    print x[0],' vs ',x[1] 

注:如果你的列表的大小不同,那么压缩在最小的元素停止

+0

非常感谢 – Harry1992

谢谢大家拉链(A,B)和枚举(a,b)都能正常工作,但如果我有a = [1,2,3,4]和b = [1,2,3]这样的列表,则zip(a,b)只能工作1,1 2,2 3,3和第四个变量不可见,枚举方法运行良好,但最终给出了错误超出范围:)