Как я могу сравнить два списка в Python и ответных матчах

Массив имеет GetValue (Int32) метод, который можно использовать для получения значения в указанном индексе.

Массив. GetValue

349
задан SilentGhost 7 September 2009 в 00:13
поделиться

7 ответов

Не самый эффективный, но, безусловно, наиболее очевидный способ сделать это:

>>> a = [1, 2, 3, 4, 5]
>>> b = [9, 8, 7, 6, 5]
>>> set(a) & set(b)
{5}

если порядок значительный, вы можете сделать это с помощью такого рода списков:

>>> [i for i, j in zip(a, b) if i == j]
[5]

(только работает для списков одинакового размера, что подразумевает значимость порядка).

435
ответ дан 23 November 2019 в 00:26
поделиться

Быстрый способ:

list(set(a).intersection(set(b)))
12
ответ дан 23 November 2019 в 00:26
поделиться

Самый простой способ сделать это - использовать sets :

>>> a = [1, 2, 3, 4, 5]
>>> b = [9, 8, 7, 6, 5]
>>> set(a) & set(b)
set([5])
12
ответ дан 23 November 2019 в 00:26
поделиться

Хотите дубликаты? Если нет, возможно, вам следует использовать наборы:


>>> set([1, 2, 3, 4, 5]).intersection(set([9, 8, 7, 6, 5]))
set([5])
5
ответ дан 23 November 2019 в 00:26
поделиться

Вы можете использовать

def returnMatches(a,b):
       return list(set(a) & set(b))
3
ответ дан 23 November 2019 в 00:26
поделиться

Используйте set.intersection () , он быстрый и читаемый.

>>> set(a).intersection(b)
set([5])
369
ответ дан 23 November 2019 в 00:26
поделиться
>>> s = ['a','b','c']   
>>> f = ['a','b','d','c']  
>>> ss= set(s)  
>>> fs =set(f)  
>>> print ss.intersection(fs)   
   **set(['a', 'c', 'b'])**  
>>> print ss.union(fs)        
   **set(['a', 'c', 'b', 'd'])**  
>>> print ss.union(fs)  - ss.intersection(fs)   
   **set(['d'])**
12
ответ дан 23 November 2019 в 00:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: