как сравнить два списка

Как сравнить два списка в 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']
→ Ссылка