2017-09-26 66 views
0
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 請幫我

回答

1

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

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

0
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

1

試試這個:

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

0

試試這個兄弟:

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

0

謝謝大家拉鍊(A,B)和枚舉(a,b)都能正常工作,但如果我有a = [1,2,3,4]和b = [1,2,3]這樣的列表,則zip(a,b)只能工作1,1 2,2 3,3和第四個變量不可見,枚舉方法運行良好,但最終給出了錯誤超出範圍:)