Пересечение
Перед началом этого урока мы объясним концепцию пересечения. Ниже в качестве примера приведены два:
Список1знак равно [4, 7, 2. 3, 9, 6, одиннадцать]
Список2знак равно [6, 5, 1, двадцать, 9, 7, 4, 3]
Если после применения пересечения результат сохраняется в другом списке, возможно, с именем List3, он будет содержать следующие данные.
List3знак равно [4, 6, 7, 9]
Графическое представление List3 показано ниже:
Пример 1. Пересечение списков с помощью метода set ()
В следующем примере показано, как можно пересечь два списка с помощью установленный() метод и & оператор. Здесь объявлены два списка с именами list1 и list2. Оба этих списка содержат числовые значения. Третий список формируется путем преобразования списка 1 и списка 2 в набор через набор () метод и применение пересечения с помощью & оператор. Затем печатаются значения трех списков.
#! / usr / bin / env python3# Определить list1
list1знак равно [22, 8, Четыре пять, одиннадцать, 3. 4, 9, двадцать, 7]
# Определить list2
list2знак равно [12, 9, двадцать, 78, 53, 8, 2, 30,31 год]
# Создаем list3, пересекая list1 и list2
list3знак равно список(установленный(list1)&установленный(list2))
# Распечатать list1
Распечатать('Значения list1: п',list1)
# Распечатать list2
Распечатать('Значения list2: п',list2)
# Распечатать list3
Распечатать('Значения list3 после пересечения list1 и list2: п',list3)
Выход
Следующий вывод появится после запуска скрипта. Оба списка имеют три общих значения. Это значения 8, 9 и 20, которые показаны в содержимом третьего списка.
Пример 2: Пересечение списков с помощью метода crossction ()
Нет прямого встроенного метода для объекта списка, чтобы узнать значения пересечения между двумя списками. Однако в наборе есть встроенный метод с именем пересечение () , чтобы узнать общие значения между наборами. Пользовательская функция с именем crossctionLists () , определяется в следующем скрипте, чтобы узнать общие значения между двумя списками. Одним из ограничений этого набора является то, что он может содержать только числовые данные. Переменная списка может содержать различные типы строк данных, включая числовые, логические и т. Д. В скрипте list1 а также list2 содержат все строковые данные, включая текст. Скрипт напечатает все общие строковые и числовые значения между list1 а также list2 .
#! / usr / bin / env python3# Определить функцию для возврата пересечения двух списков
defIntersectLists(list1,list2):
возвращение установленный(list1).пересечение(list2)
# Определить list1
list1знак равно ['Привет','7','8','10','2']
# Определить list2
list2знак равно ['8',«3. 4»,'Привет','2','21','1',10]
'' 'Вызовите пользовательскую функцию для сохранения
результат пересечения list1 и list2
в список3 '' '
list3знак равноIntersectLists(list1,list2)
# Распечатать list1
Распечатать('Значения list1: п',list1)
# Распечатать list2
Распечатать('Значения list2: п',list2)
# Распечатать list3
Распечатать('Значения list3 после пересечения list1 и list2: п',list3)
Выход
Следующий вывод появится после запуска скрипта. Здесь общие значения для двух списков - «2», «8» и «Привет».
Пример 3: Пересечение списков с помощью метода цикла
В двух предыдущих примерах показано пересечение списков с использованием встроенных функций. В следующем примере показано пересечение списков без какой-либо встроенной функции. Этого можно добиться с помощью цикла. В скрипте объявлены два списка текстовых данных. В для цикл используется здесь, чтобы узнать общие текстовые значения между list1 а также список2, и которые хранятся в переменной, list3 . Затем печатаются значения этих трех переменных списка.
#! / usr / bin / env python3# Определить list1
list1знак равно ['Фархан','Абир','Акаш','Мина','Mazher']
# Определить list2
list2знак равно ['Мина','Мойна','Нобель','Ближе','Абир','Фархин']
# Находим пересечение с помощью цикла for и сохраняем результат в list3
list3знак равно [ценитьдляценитьвlist1еслиценитьвlist2]
# Распечатать list1
Распечатать('Значения list1: п',list1)
# Распечатать list2
Распечатать('Значения list2: п',list2)
# Распечатать list3
Распечатать('Значения list3 после пересечения list1 и list2: п',list3)
Выход
Следующий вывод появится после запуска скрипта. Здесь общие текстовые значения двух списков «Абир» а также «Мина».
Пример 4: Пересечение простых и вложенных списков с помощью метода filter ()
В следующем примере показано пересечение простого списка и вложенного списка. В фильтр() метод и лямбда функции используются в скрипте для пересечения списка list1 и list2. Когда список содержит один или несколько списков в качестве элементов списка, этот список называется вложенным списком. Здесь, list1 это простой список, а list2 является вложенным списком, а list3 содержит значения пересечения list1 а также list2 .
#! / usr / bin / env python3# Определить простой список
list1знак равно [22, 8, Четыре пять, одиннадцать, 3. 4, 9, двадцать, 7]
# Определить вложенный список
list2знак равно [[12, 9, двадцать], [78, одиннадцать, 53, 8], [2, 30, 31 год, Четыре пять]]
# Создайте list3 путем пересечения list1 и list2 с помощью filter ()
list3знак равно [список(фильтр(лямбдап: пвlist1,Slist)) дляSlistвlist2]
# Распечатать list1
Распечатать('Значения list1: п',list1)
# Распечатать list2
Распечатать('Значения list2: п',list2)
# Распечатать list3
Распечатать('Значения list3 после пересечения list1 и list2: п',list3)
Выход
Следующий вывод появится после запуска скрипта. Переменная list2 содержит три других списка в качестве элементов списка. Итак, результат показывает пересечение между этими тремя подсписками list2 и list1.
Заключение
Пересечение списков - полезный способ найти общие значения между списками, содержащими большое количество элементов списка. В этом руководстве показаны методы выполнения пересечения списков со встроенными функциями и без них. После прочтения этой статьи концепция пересечения списков должна быть ясна, и вы сможете применить пересечение списков в своем скрипте, следуя любому способу, показанному в этом руководстве.