2017-06-12 125 views
-4

有沒有辦法檢查python中兩個列表中是否有兩個項目在相同的位置?例如,我希望能夠得到這樣的結果檢查兩個列表中的相同位置是否有相同的值

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

我想辦法得到的結果「3」出來的,但我希望它也能夠檢查列表中的所有項目,不只是在找到第一個後才停下來。

+4

檢查方法是編寫一個程序。但在此之前,你想知道該怎麼辦。職位列表?找到了一組實際的重複值? – Anthon

回答

1

你可以試試這個:

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

same_place = [i for i, c in zip(a, b) if i == c] 

這會給你出現在兩個列表在同一個地方的所有值的列表。

+0

'zip'是循環到'a'和'b'的正確方法 – RaphaMex

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

for index, data in enumerate(zip(a, b)): 
    if data[0] == data[1]: 
     print('The same at index: {0}, value {1}'.format(index, data[0])) 
0

我的python有點生疏,所以我的語法可能有點偏離。

有效地你會做的就是這個,

創建一個循環,每個陣列的當前元素相互比較, 然後通過一個遞增的索引,索引比較數組的長度。

i=0; 
a=[1,2,3,4]; 
b=[4,3,2,1]; 

while(i>= len(a) -1 && i>= len(b)-1){ 
    if(a[i] == b[i]){ 
    print(a[i]); 
    } 
    i++ 

什麼這會做是,索引變量(i)設置爲0,以及使用該陣列的長度比較它陣列A的長度和B。 (len(a)或len(b)) while循環只會在數組大於或等於i時運行,所以如果您有一個長度爲4個項目的數組和長度爲80個項目的數組,它只會循環較短數組長度的次數,因此不會創建索引越界錯誤。 len() - 1部分是由於數組具有從零開始的索引,len()函數提供索引總數(包括索引[0])。 例如,數組a []具有索引0,1,2和3,但是len()爲4.如果要循環到i = 4,它將檢查[4]和索引輸出邊界錯誤。

它然後打印的數量(如果找到)來篩選,你甚至可以只打印出我以及打印出匹配的數,並且在指數

音符。這是未完成的代碼,如果找不到匹配,它將完全不做任何事情。

我希望這會有所幫助:)