Проверьте, сколько раз и существует ли ровно один элемент в списке в другом списке

#python #list #set

#python #Список #установить

Вопрос:

У меня есть несколько списков, которые содержат списки, и я хотел бы убедиться, что для каждого списка есть ровно один общий элемент. Пока что я получил:

 def func(lst1):
    first = lst1[0]
    for i in lst1:
        if not any(i in lst for i in first):
            return False
        for j in i:
            first.add(j)
    return True 
 

это помогает определить, есть ли общий элемент, но не считать его.

Комментарии:

1. Ключевая вещь, отсутствующая в вашем сообщении, — это пример вашего ввода и соответствующего желаемого результата.

Ответ №1:

Не уверен, что я понимаю, что именно делает ваш код, но я попробую помочь.

 def func(lst):
    common_item_count = []

    for i in lst:
        if not common_item in lst:
            return False
        else:
            common_item_count.append(lst.count(common_item))
    return True
 

Работает ли это так, как вы хотите?

Ответ №2:

Это именно то, для чего нужны наборы. Вы можете найти общие элементы коллекции списков, приведя их к наборам и найдя пересечение. https://www.w3schools.com/python/ref_set_intersection.asp

Я бы привел пример кода, но я не могу понять код в вашем вопросе.