У овом водичу ћемо разговарати о томе како можемо добити пресек две листе. Пресек две листе значи да морамо да добијемо све познате елементе на обе почетне листе.
Питхон је познат по одличној уграђеној структури података. Питхон листа је један од познатих и вредних уграђених типова података у Питхон-у. Може да складишти различите вредности типова података у сортираном редоследу. Међутим, не постоји уграђена функција за листе попут скупова.
тигар лав разлика
Питхон пружа много начина за обављање пресека листа. Хајде да видимо следећи сценарио.
Улазни :
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: Коришћење фор петље
# 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]
Користили смо фор петљу да добијемо заједничку вредност из обе листе и ускладиштили је у променљивој лист3.
Метод - 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:
Користићемо уграђене сетове раскрсница() методом. Тхе раскрсница() је првокласни део комплета. Хајде да разумемо следећи пример.
Пример -
језгро грешке сегментације је избачено
# 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]]
Тхе филтер() метода узима сваку ставку подлисте и проверава да ли је присутна на листи1. Разумевање листе се извршава за сваку подлисту у листи2.