В този урок ще обсъдим как можем да получим пресечната точка на двата списъка. Пресичането на два списъка означава, че трябва да получим всички познати елементи и на двата първоначални списъка.
Python е известен с отличната си вградена структура от данни. Списъкът на Python е един от известните и ценни вградени типове данни на Python. Той може да съхранява различните стойности на типове данни в сортиран ред. Въпреки това, няма вградена функция за списъци като набори.
как да чета csv файл в java
Python предоставя много начини за извършване на пресичане на списъците. Да видим следния сценарий.
Вход :
list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26]
Изход:
[90, 11, 58, 31, 66, 28, 54]
Вход :
list1 = [4, 9, 1, 17, 11, 26, 28, 54, 69] list2 = [9, 9, 74, 21, 45, 11, 63, 28, 26]
Изход:
[9, 11, 26, 28]
Нека видим следните методи за получаване на пресичане на два списъка.
Метод - 1: Използване на for цикъл
# Python program to get the intersection # of two lists in most simple way def intersection_list(list1, list2): list3 = [value for value in list1 if value in list2] return list3 # Driver Code list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Изход:
[90, 11, 58, 31, 66, 28, 54]
Използвахме for цикъл, за да получим общата стойност от двата списъка и я съхранихме в променливата list3.
Метод - 2: Преобразуване на списък в набор
def intersection_list(list1, list2): return list(set(list1) & set(list2)) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Изход:
[66, 90, 11, 54, 58, 28, 31]
Метод - 3:
Ще използваме вградените комплекти пресичане () метод. The пресичане () е първокласна част от комплекта. Нека разберем следния пример.
пример -
ymail
# Python program to get the intersection # of two lists using set() and intersection() def intersection_list(list1, list2): return set(list1).intersection(list2) list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection_list(list1, list2))
Изход:
{66, 90, 11, 54, 58, 28, 31}
Метод - 4:
В този метод ще използваме хибридния метод. Това е много ефективен начин за изпълнение на задачата. Нека разберем следния пример.
пример -
# Python program to get the intersection # of two lists def intersection(list1, list2): # Use of hybrid method temp = set(list2) list3 = [value for value in list1 if value in temp] return list3 list1 = [40, 90, 11, 58, 31, 66, 28, 54, 79] list2 = [58, 90, 54, 31, 45, 11, 66, 28, 26] print(intersection(list1, list2))
Изход:
[90, 11, 58, 31, 66, 28, 54]
Метод - 5:
В този метод ще използваме филтър() метод. Пресичането се извършва върху подсписъци в други списъци. Нека разберем следния пример.
пример -
# Python program togetthe intersection # of two lists, sublists and use of filter() def intersection_list(list1, list2): list3 = [list(filter(lambda x: x in list1, sublist)) for sublist in list2] return list3 list1 = [10, 9, 17, 40, 23, 18, 56, 49, 58, 60] list2 = [[25, 17, 23, 40, 32], [1, 10, 13, 27, 28], [60, 55, 61, 78, 15, 76]] print(intersection_list(list1, list2))
Изход:
[[17, 23, 40], [10], [60]]
The филтър() взема всеки елемент от подсписъка и проверява дали присъства в списъка1. Разбирането на списъка се изпълнява за всеки подсписък в списъка2.