Форум сайта python.su
А, ну да.
Офлайн
PythoNoob
Как проверить принадлежность нескольких элементов одного списка (допустим 3-х или 4-х) - списку например из 8 элементов.
Допустим L1 = это первый список, L2 = это второй список. Нужно чтобы каждый из элементов L1 пробежался по списку L2 и если в L2 нашлись все элементы L1, то выполняется условие “A”, если нет то выполняется условие “B”
for i in L1:
if i not in L2:
print('Условие B')
break
else:
print('Условие A')
Отредактировано (Янв. 12, 2012 08:29:54)
Офлайн
baaВариант со множествами более правильный и быстрый.PythoNoobfor i in L1:
Как проверить принадлежность нескольких элементов одного списка (допустим 3-х или 4-х) - списку например из 8 элементов.
Допустим L1 = это первый список, L2 = это второй список. Нужно чтобы каждый из элементов L1 пробежался по списку L2 и если в L2 нашлись все элементы L1, то выполняется условие “A”, если нет то выполняется условие “B”
if i not in L2:
print('Условие B')
break
else:
print('Условие A')
Офлайн
Вряд ли более быстрый. В моем варианте как только находиться один элемент не входящий во множество L2 цикл прекращается, что очень не плохо если списки содержат по несколько миллионов элементов каждый, а то и вообще генерируются по ходу (потоки данных). Да и выглядит все очевидно.
Офлайн
>>> la = [1, 2, 3]
>>> lb = [3, 4, 5, 1, 6, 7, 8, 2]
>>> all(i in lb for i in la)
True
>>> la.append(9)
>>> all(i in lb for i in la)
False
>>>
Офлайн
скажите а зачем вам пауза? может реализовать через yield?
Офлайн