Python

Lijst kruispunt in Python

Lijst kruispunt in Python
Er zijn veel objectvariabelen in python om verschillende gegevenstypen op te slaan. De lijst is een van deze variabelen en kan verschillende soorten gegevens opslaan voor verschillende behoeften. Soms moeten we algemene, ongebruikelijke of zowel algemene als ongebruikelijke gegevensitems uit de meerdere lijsten vinden voor programmeerdoeleinden. Python bevat verschillende ingebouwde functies en operators die dit soort taken voor Python-sets kunnen uitvoeren. Het vinden van gemeenschappelijke gegevens uit de meerdere lijsten wordt lijstkruising genoemd, maar er is geen operator of ingebouwde functie voor lijsten zoals sets om de gemeenschappelijke gegevensitems uit meerdere lijsten te vinden. Deze tutorial laat je zien hoe je lijsten kruist in Python.

Kruispunt

Voordat u met deze tutorial begint, wordt het concept van kruising uitgelegd. Hieronder worden er twee als voorbeeld gegeven:

Lijst1 = [4, 7, 23, 9, 6, 11]
Lijst2 = [6, 5, 1, 20, 9, 7, 4, 3]

Als het resultaat na het toepassen van het snijpunt is opgeslagen in een andere lijst, misschien met de naam Lijst3, dan bevat het de volgende gegevens:.

Lijst3 = [4, 6, 7, 9]

De grafische weergave van List3 wordt hieronder weergegeven:

Voorbeeld 1: Lijsten kruisen via de set() Methode

Het volgende voorbeeld laat zien hoe u twee lijsten kunt kruisen met de stel() methode en de & operator. Twee lijsten, genaamd lijst1 en lijst2, worden hier gedeclareerd. Beide lijsten bevatten numerieke waarden. De derde lijst wordt gegenereerd door lijst1 en lijst 2 om te zetten in de set via de set() methode en het toepassen van intersectie met behulp van de & operator. Vervolgens worden de waarden van de drie lijsten afgedrukt.

#!/usr/bin/env python3
# Definieer lijst1
lijst1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definieer lijst2
lijst2 = [12, 9, 20, 78, 53, 8, 2, 30,31]
# Maak lijst3 door lijst1 en lijst2 te kruisen
lijst3 = lijst(set(lijst1) & set(lijst2))
# Lijst afdrukken1
print("De waarden van lijst1:\n",lijst1)
# Lijst afdrukken2
print("De waarden van list2:\n",list2)
# Lijst afdrukken3
print("De waarden van lijst3 na het kruisen van lijst1 en lijst2:\n",list3)

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:. Drie waarden zijn gemeenschappelijk voor beide lijsten. Deze waarden zijn 8, 9 en 20 en worden weergegeven in de inhoud van de derde lijst.

Voorbeeld 2: Kruisende lijsten via de methode intersectie()

Er is geen directe, ingebouwde methode voor het lijstobject om de snijpunten tussen twee lijsten te achterhalen. De set heeft echter een ingebouwde methode, genaamd kruispunt(), om de gemeenschappelijke waarden tussen de sets te achterhalen. Een aangepaste functie, genaamd intersectieLijsten(), is gedefinieerd in het volgende script om de gemeenschappelijke waarden tussen de twee lijsten te achterhalen. Een beperking van deze set is dat deze alleen numerieke gegevens kan bevatten. Een lijstvariabele kan verschillende soorten gegevensreeksen bevatten, inclusief numeriek, booleaans, enz. In het script, lijst1 en lijst2 bevatten alle tekenreeksgegevens inclusief en tekst. Het script drukt alle algemene tekenreeksen en numerieke waarden af ​​tussen lijst1 en lijst2.

#!/usr/bin/env python3
 
# Definieer de functie om het snijpunt van twee lijsten te retourneren
def intersectLists(lijst1, lijst2):
retourset(lijst1).kruispunt(lijst2)
 
# Definieer lijst1
lijst1 = ['Hallo','7','8','10','2']
# Definieer lijst2
lijst2 = ['8','34','Hallo','2','21','1',10]
"Bel de aangepaste functie om op te slaan
het snijpunt resultaat van lijst1 en lijst2
in lijst3"
lijst3 = snijLijsten(lijst1, lijst2)
# Lijst afdrukken1
print("De waarden van lijst1:\n",lijst1)
# Lijst afdrukken2
print("De waarden van list2:\n",list2)
# Lijst afdrukken3
print("De waarden van lijst3 na het kruisen van lijst1 en lijst2:\n",list3)

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:. Hier zijn de gemeenschappelijke waarden tussen de twee lijsten '2', '8' en 'Hallo.'

Voorbeeld 3: Kruisende lijsten via de lusmethode

De vorige twee voorbeelden tonen het snijpunt van een lijst met ingebouwde functies. Het volgende voorbeeld toont een lijstkruising zonder ingebouwde functie. Dit kan worden bereikt door gebruik te maken van de lus. In het script worden twee lijsten met tekstgegevens gedeclareerd. De voor lus wordt hier gebruikt om de gemeenschappelijke tekstwaarden tussen lijst1 en lijst2, en die zijn opgeslagen in de variabele, lijst3. Vervolgens worden de waarden van deze drie lijstvariabelen afgedrukt.

#!/usr/bin/env python3
 
# Definieer lijst1
lijst1 = ['Farhan','Abir','Akash', 'Meena', 'Mazher']
# Definieer lijst2
list2 = ['Meena','Moyna','Nobel','Naher','Abir','Farheen']
# Zoek de kruising met de for-lus en sla het resultaat op in lijst3
list3 = [waarde voor waarde in lijst1 als waarde in lijst2]
 
# Lijst afdrukken1
print("De waarden van lijst1:\n",lijst1)
# Lijst afdrukken2
print("De waarden van list2:\n",list2)
# Lijst afdrukken3
print("De waarden van list3 na het kruisen van list1 en list2:\n",list3)

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:. Hier zijn de algemene tekstwaarden van de twee lijsten: 'Abir' en 'Meena'.'

Voorbeeld 4: Eenvoudige en geneste lijsten kruisen via de filter()-methode

Het volgende voorbeeld toont het snijpunt tussen een eenvoudige lijst en een geneste lijst. De filter() methode en lambda functie worden in het script gebruikt om de kruising tussen lijst1 en lijst2 uit te voeren. Als een lijst een of meer lijsten als lijstitems bevat, wordt de lijst een geneste lijst genoemd. Hier, lijst1 is een eenvoudige lijst, en lijst2 is een geneste lijst, terwijl lijst3 bevat de snijpuntwaarden van lijst1 en lijst2.

#!/usr/bin/env python3
 
# Definieer een eenvoudige lijst
lijst1 = [22, 8, 45, 11, 34, 9, 20, 7]
# Definieer een geneste lijst
lijst2 = [[12, 9, 20], [78, 11, 53, 8], [2, 30, 31, 45]]
# Maak lijst3 door lijst1 en lijst2 te kruisen met filter()
lijst3 = [lijst(filter(lambda n: n in lijst1, slist)) voor slist in lijst2]
 
# Lijst afdrukken1
print("De waarden van lijst1:\n",lijst1)
# Lijst afdrukken2
print("De waarden van list2:\n",list2)
# Lijst afdrukken3
print("De waarden van lijst3 na het kruisen van lijst1 en lijst2:\n",list3)

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:. De variabele list2 bevat drie andere lijsten als lijstitems. Het resultaat toont dus de kruising tussen deze drie sublijsten van lijst2 met lijst1.

Conclusie

Lijstkruising is een handige manier om de gemeenschappelijke waarden te vinden tussen lijsten die een groot aantal lijstitems bevatten. Methoden voor het uitvoeren van lijstdoorsnede met en zonder ingebouwde functies worden in deze zelfstudie getoond. Na het lezen van dit artikel zou het concept van de lijstdoorsnijding duidelijk moeten zijn, en zou u in staat moeten zijn om lijstdoorsnede in uw script toe te passen door een van de manieren te volgen die in deze zelfstudie worden getoond.

SuperTuxKart voor Linux
SuperTuxKart is een geweldige titel die is ontworpen om je de Mario Kart-ervaring gratis te bieden op je Linux-systeem. Het is behoorlijk uitdagend en...
Strijd om Wesnoth Zelfstudie
The Battle for Wesnoth is een van de meest populaire open source strategiespellen die je op dit moment kunt spelen. Dit spel is niet alleen al heel la...
0 A.D. zelfstudie
Van de vele strategiespellen die er zijn, 0 A.D. slaagt erin om op te vallen als een uitgebreide titel en een zeer diep, tactisch spel ondanks dat het...