Python

Пресичане на списъци в Python

Пресичане на списъци в Python
В python съществуват много обектни променливи за съхраняване на различни типове данни. The списък е една от тези променливи и може да съхранява различни видове данни за различни нужди. Понякога трябва да намерим общи, необичайни или едновременно често срещани и необичайни елементи от множество списъци за целите на програмирането. Python съдържа няколко вградени функции и оператори, които могат да изпълняват този тип задачи за набори от Python. Намирането на общи данни от множество списъци се нарича пресичане на списък, но няма оператор или вградена функция за списъци като набори за намиране на общите елементи от множество списъци. Този урок ще ви покаже как да пресичате списъци в Python.

Пресичане

Преди да започнете този урок, ще бъде обяснена концепцията за пресичане. По-долу са дадени две като пример:

Списък1 = [4, 7, 23, 9, 6, 11]
Списък2 = [6, 5, 1, 20, 9, 7, 4, 3]

След прилагане на пресичането, ако резултатът се съхранява в друг списък, може би с име List3, тогава той ще съдържа следните данни.

Списък3 = [4, 6, 7, 9]

Графичното представяне на List3 е показано по-долу:

Пример 1: Пресичане на списъци чрез метода set ()

Следващият пример показва как можете да пресечете два списъка с помощта на комплект() метод и & оператор. Тук са декларирани два списъка, наречени list1 и list2. И двата списъка съдържат числови стойности. Третият списък се генерира чрез преобразуване на list1 и list 2 в набора чрез набора() метод и прилагане на пресичане с помощта на & оператор. След това се отпечатват стойностите на трите списъка.

#!/ usr / bin / env python3
# Определете списък1
list1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Определете списък2
list2 = [12, 9, 20, 78, 53, 8, 2, 30,31]
# Създаване на списък3 чрез пресичане на списък1 и списък2
list3 = list (set (list1) & set (list2))
# Списък за печат1
print ("Стойностите на list1: \ n", list1)
# Списък за печат2
print ("Стойностите на list2: \ n", list2)
# Списък за печат3
print ("Стойностите на list3 след пресичане на list1 и list2: \ n", list3)

Изход

След стартиране на скрипта ще се появи следният изход. Три стойности са общи за двата списъка. Тези стойности са 8, 9 и 20 и са показани в съдържанието на третия списък.

Пример 2: Пресичащи се списъци чрез метода за пресичане ()

Няма директен, вграден метод за списъчния обект, за да открие пресечните стойности между два списъка. Комплектът обаче има вграден метод, наречен кръстовище (), за да разберете общите стойности между наборите. Персонализирана функция, наречена intersectionLists (), е дефиниран в следващия скрипт, за да се открият общите стойности между двата списъка. Едно ограничение на този набор е, че той може да съдържа само цифрови данни. Променливата на списъка може да съдържа различни видове низове от данни, включително числови, булеви и т.н. В сценария, списък1 и списък2 съдържат всички низови данни, включително и текст. Скриптът ще отпечата всички често срещани низови и числови стойности между списък1 и списък2.

#!/ usr / bin / env python3
 
# Дефинирайте функцията за връщане на пресичането на два списъка
def intersectLists (list1, list2):
връщане комплект (list1).кръстовище (списък2)
 
# Определете списък1
list1 = ['Здравейте', '7', '8', '10', '2']
# Определете списък2
list2 = ['8', '34', 'Здравейте', '2', '21', '1', 10]
Msgstr "Извикайте потребителската функция за съхранение
резултатът от пресичането на list1 и list2
в списък3 "
list3 = intersectLists (list1, list2)
# Списък за печат1
print ("Стойностите на list1: \ n", list1)
# Списък за печат2
print ("Стойностите на list2: \ n", list2)
# Списък за печат3
print ("Стойностите на list3 след пресичане на list1 и list2: \ n", list3)

Изход

След стартиране на скрипта ще се появи следният изход. Тук често срещаните стойности между двата списъка са „2“, „8“ и „Здравейте.'

Пример 3: Пресичащи се списъци чрез метода на цикъла

Предишните два примера показват пресичане на списък с помощта на вградени функции. Следващият пример показва пресичане на списък без вградена функция. Това може да се постигне чрез използване на цикъла. В скрипта са декларирани два списъка с текстови данни. The за цикъл се използва тук, за да се открият общите текстови стойности между списък1 и списък2, и които се съхраняват в променливата, списък3. След това се отпечатват стойностите на тези три променливи от списъка.

#!/ usr / bin / env python3
 
# Определете списък1
list1 = ['Farhan', 'Abir', 'Akash', 'Meena', 'Mazher']
# Определете списък2
list2 = ['Meena', 'Moyna', 'Nobel', 'Naher', 'Abir', 'Farheen']
# Намерете кръстовището с помощта на цикъл for и съхранявайте резултата в list3
list3 = [стойност за стойност в list1, ако стойността в list2]
 
# Списък за печат1
print ("Стойностите на list1: \ n", list1)
# Списък за печат2
print ("Стойностите на list2: \ n", list2)
# Списък за печат3
print ("Стойностите на list3 след пресичане на list1 и list2: \ n", list3)

Изход

След стартиране на скрипта ще се появи следният изход. Тук често срещаните текстови стойности на двата списъка са "Абир" и - Мийна.'

Пример 4: Пресичане на прости и вложени списъци чрез метода filter ()

Следващият пример показва пресичането между обикновен списък и вложен списък. The филтър () метод и ламбда функция се използват в скрипта за провеждане на пресичането между list1 и list2. Когато списъкът съдържа един или повече списъци като елементи от списъка, тогава списъкът се нарича вложен списък. Тук, списък1 е прост списък и списък2 е вложен списък, докато списък3 съдържа пресечните стойности на списък1 и списък2.

#!/ usr / bin / env python3
 
# Определете прост списък
списък1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Дефинирайте вложен списък
списък2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Създаване на списък3 чрез пресичане на списък1 и списък2 с помощта на filter ()
list3 = [списък (филтър (ламбда n: n в списък1, списък)) за списък в списък2]
 
# Списък за печат1
print ("Стойностите на list1: \ n", list1)
# Списък за печат2
print ("Стойностите на list2: \ n", list2)
# Списък за печат3
print ("Стойностите на list3 след пресичане на list1 и list2: \ n", list3)

Изход

След стартиране на скрипта ще се появи следният изход. Променливата list2 съдържа три други списъка като елементи от списъка. Така че, резултатът показва пресичането между тези три под-списъка на list2 със list1.

Заключение

Пресичането на списъка е полезен начин за намиране на общите стойности между списъците, които съдържат голям брой елементи от списъка. Методите за извършване на пресичане на списък със и без вградени функции са показани в този урок. След като прочетете тази статия, концепцията за пресичането на списъка трябва да бъде ясна и бихте могли да приложите пресичането на списъка във вашия скрипт, като следвате какъвто и да е начин, показан в този урок.

Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...
Инсталирайте най-новия Dolphin Emulator за Gamecube & Wii на Linux
Dolphin Emulator ви позволява да играете избраните от вас игри Gamecube & Wii на Linux Personal Computers (PC). Като безплатно достъпен и емулатор на...
Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...