Обычной задачей является проверка наличия одного или нескольких элементов в списке. Вместо разработки сложной функции вы можете использовать следующие краткие подходы.
Оператор or в Python последовательно оценивает свои аргументы, возвращая первое истинное или непустое значение. Хотя это может показаться решением, в случае списков оно не соответствует действительности. Как показано выше, (1 или 2) в a оценивается как False, а (2 или 1) в a оценивается как True. Это происходит потому, что 1 оценивается как False в логическом контексте, в результате чего выражение эквивалентно False в a.
Более эффективный и читаемый метод — использовать понимание списка или пересечение множеств. Используя понимание списка, вы можете фильтровать элементы первого списка на основе их присутствия во втором списке. Например:
L1 = [2, 3, 4] L2 = [1, 2] [i for i in L1 if i in L2] # Returns [2]
В качестве альтернативы вы можете преобразовать списки в наборы, выполнить пересечение наборов и использовать логическое значение результирующего набора. Этот подход выгоден при эффективной обработке повторяющихся элементов:
S1 = set(L1) S2 = set(L2) S1.intersection(S2) # Returns set([2])
И пустые списки, и пустые множества оцениваются как False, что позволяет оценить их наличие напрямую с использованием логической логики.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3