#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
Я бы привел пример кода, но я не могу понять код в вашем вопросе.