Сравнение списков в Python

Рейтинг: 1Ответов: 3Опубликовано: 31.03.2023

Этот код сравнивает списки, выводя количество элементов которые в них совпадают. Можно ли использовать что-то по типу lst.compare(lst2) вместо этого кода?

def compare_lists(lst, lst2):
    items = 0
    for i, j in zip(lst, lst2):
        if i == j:
            items += 1
    return items

Ответы

▲ 2Принят

Наверное, один из самых коротких вариантов будет такой:

def compare_lists(lst, lst2):
    return sum(a == b for a, b in zip(lst, lst2))
▲ 3

Используйте пересечение множеств

lst1 =[1,2,3,4,5]
lst2 =[2,3,4,5,6]
print(len(set(lst1).intersection(lst2)))
4
▲ 0

Или вы хотите вызывать функцию так lst1.compare(lst2), а не так compare(lst1, lst2) тогда вам нужно создать класс для lst по тому что в данном примере вы продемонстрировали вызов метода класса