как сравнить два списка
Как сравнить два списка в python
n = ['a1','b2','c3']
m = ['b2','c3','d4']
out =['b2','c3']
Ответы (2 шт):
Автор решения: AkkiX86
→ Ссылка
если просто сравнить, то можно через операторы if-else.
if n == m:
print("они одинаковы")
else:
print("они не одинаковы")
если хочешь сравнить и вывести одинаковы элементы, то через функцию set() (взял с комментов).
out = set(n) & set(m)
Автор решения: Алексей Р
→ Ссылка
Найти одинаковые элементы в списках можно несколькими способами. При этом нужно учитывать, требуется ли сохранять порядок следования элементов или нет. Также нужно принять во внимание результирующую структуру данных. Так, использование метода / оператора пересечения множеств возвращает множество, а не список, поэтому к результату нужно применить функцию list().
Ниже приведено 4 способа это сделать.
n = ['a1', 'b2', 'c3']
m = ['b2', 'c3', 'd4']
out = []
for a in n: # цикл; гарантирует сохранение исходного порядка следования элементов в результирующем списке
if a in m:
out.append(a)
print(out)
out1 = [a for a in n if a in m] # списковое включение; гарантирует сохранение исходного порядка следования элементов в результирующем списке
print(out1)
out2 = list(set(n).intersection(m)) # метод пересечения множеств (аргументы могут быть не set, а iterables); НЕ гарантирует сохранение исходного порядка следования элементов в результирующем списке
print(out2)
out3 = list(set(n) & set(m)) # оператор пересечения множеств (допустимы только set); НЕ гарантирует сохранение исходного порядка следования элементов в результирующем списке
print(out3)
['b2', 'c3']
['b2', 'c3']
['c3', 'b2']
['c3', 'b2']