Sorolja fel a Python metszéspontját

List Intersection Python



A pythonban számos objektumváltozó létezik különféle adattípusok tárolására. Az lista egyike ezeknek a változóknak, és különböző típusú adatokat tárolhat különböző igényekhez. Előfordulhat, hogy programozási célokból közös, nem gyakori vagy közös és nem gyakori adatelemeket kell találnunk a több listából. A Python számos beépített funkciót és operátort tartalmaz, amelyek képesek elvégezni az ilyen típusú feladatokat a Python-készletekhez. A közös adatok megkeresését a több listából lista metszéspontnak nevezzük, de nincs olyan operátor vagy beépített függvény a listákhoz, mint például a halmazok, amelyek megkeresik a gyakori adatelemeket több listából. Ez az oktatóanyag megmutatja, hogyan kell metszeni a listákat a Pythonban.

Útkereszteződés

Az oktatóanyag megkezdése előtt elmagyarázzuk a kereszteződés fogalmát. Az alábbiakban példaként kettőt adunk meg:







Lista1= [4, 7, 2. 3, 9, 6, tizenegy]
Lista2= [6, 5, 1, húsz, 9, 7, 4, 3]

A metszéspont alkalmazása után, ha az eredményt egy másik, esetleg List3 nevű listában tárolják, akkor a következő adatokat fogja tartalmazni.



Lista3= [4, 6, 7, 9]

A List3 grafikus ábrázolása az alábbiakban látható:







1. példa: Listák metszése a set () metódussal

A következő példa bemutatja, hogyan metszheti két listát a készlet() módszer és a & operátor. Itt két listát, lista1 és lista2 nevet adunk meg. Mindkét lista numerikus értékeket tartalmaz. A harmadik listát a lista1 és a lista 2 halmazon keresztüli átalakításával állítják elő () módszerrel és a metszéspont alkalmazásával & operátor. Ezután kinyomtatja a három lista értékeit.

#!/usr/bin/env python3
# Lista meghatározása1
lista1= [22, 8, Négy öt, tizenegy, 3. 4, 9, húsz, 7]
# Lista definiálása2
lista2= [12, 9, húsz, 78, 53, 8, 2, 30,31]
# Lista3 létrehozása a lista1 és lista2 metszésével
lista3= lista(készlet(lista1)&készlet(lista2))
# Lista nyomtatása1
nyomtatás('Az 1. lista értékei: n',lista1)
# Lista nyomtatása2
nyomtatás('A 2. lista értékei: n',lista2)
# Lista nyomtatása3
nyomtatás('A lista3 értékei a lista1 és lista2 metszéspontja után: n',lista3)

Kimenet



A szkript futtatása után a következő kimenet jelenik meg. Három érték közös mindkét listában. Ezek az értékek 8, 9 és 20, és megjelennek a harmadik lista tartalmában.

2. példa: Metsző listák a metszés () metódussal

A listaobjektumnak nincs közvetlen, beépített módszere a két lista közötti metszésértékek megállapítására. A készletnek azonban van egy beépített metódusa, az úgynevezett útkereszteződés() , hogy megtudja a halmazok közös értékeit. Egyéni funkció, elnevezéssel intersectionLists () , a következő parancsfájl határozza meg, hogy megtudja a két lista közös értékeit. Ennek a készletnek az egyik korlátozása az, hogy csak numerikus adatokat tartalmazhat. A listaváltozó különféle típusú adatsorokat tartalmazhat, beleértve a numerikus, logikai értéket stb. A szkriptben lista1 és lista2 tartalmazza az összes karakterlánc -adatot, beleértve a szöveget is. A szkript minden közös karakterlánc- és számértéket kinyomtat lista1 és lista2 .

#!/usr/bin/env python3

# Határozza meg azt a függvényt, amely két lista metszéspontját adja vissza
defintersectLists(lista1,lista2):
Visszatérés készlet(lista1).útkereszteződés(lista2)

# Lista meghatározása1
lista1= ['Helló',„7”,'8',„10”,'2']
# Lista definiálása2
lista2= ['8','3. 4','Helló','2','huszonegy','1',10]
'' 'Hívja az egyéni funkciót a tároláshoz
lista1 és lista2 metszéspontja
listába3 ''

lista3=intersectLists(lista1,lista2)
# Lista nyomtatása1
nyomtatás('Az 1. lista értékei: n',lista1)
# Lista nyomtatása2
nyomtatás('A 2. lista értékei: n',lista2)
# Lista nyomtatása3
nyomtatás('A lista3 értékei a lista1 és lista2 metszéspontja után: n',lista3)

Kimenet

A szkript futtatása után a következő kimenet jelenik meg. Itt a két lista közös értékei „2”, „8” és „Hello”.

3. példa: Listák metszése a ciklus módszerrel

Az előző két példa a lista metszését mutatja be beépített függvényekkel. A következő példa bemutatja a lista metszéspontját beépített funkció nélkül. Ezt a hurok használatával érhetjük el. A szkriptben két szöveges adatlista szerepel. Az számára A ciklus itt a közös szövegértékek megállapítására szolgál lista1 és lista2, és amelyeket a változó tárol, lista3 . Ezután ennek a három listaváltozónak az értékei kerülnek kinyomtatásra.

#!/usr/bin/env python3

# Lista meghatározása1
lista1= ['Farhan','Abir','Akash','Meena','Mazher']
# Lista definiálása2
lista2= ['Meena','Moyna','Nobel','Közelebb','Abir','Farheen']
# Keresse meg a metszéspontot a ciklus használatával, és tárolja az eredményt a list3 -ban
lista3= [értékszámáraértékban benlista1haértékban benlista2]

# Lista nyomtatása1
nyomtatás('Az 1. lista értékei: n',lista1)
# Lista nyomtatása2
nyomtatás('A 2. lista értékei: n',lista2)
# Lista nyomtatása3
nyomtatás('A lista3 értékei a lista1 és lista2 metszéspontja után: n',lista3)

Kimenet

A szkript futtatása után a következő kimenet jelenik meg. Itt a két lista közös szövegértékei a következők „Abir” és - Meena.

4. példa: Egyszerű és beágyazott listák metszése a szűrő () módszerrel

A következő példa az egyszerű lista és a beágyazott lista metszéspontját mutatja. Az szűrő() módszer és lambda függvényt használják a szkriptben a lista1 és lista2 közötti metszés elvégzésére. Ha egy lista egy vagy több listát tartalmaz listaelemként, akkor a listát beágyazott listának nevezzük. Itt, lista1 egy egyszerű lista, és lista2 egy beágyazott lista, míg lista3 metszéspont értékeit tartalmazza lista1 és lista2 .

#!/usr/bin/env python3

# Határozzon meg egy egyszerű listát
lista1= [22, 8, Négy öt, tizenegy, 3. 4, 9, húsz, 7]
# Definiáljon beágyazott listát
lista2= [[12, 9, húsz], [78, tizenegy, 53, 8], [2, 30, 31, Négy öt]]
# Lista3 létrehozása a lista1 és lista2 metszésével a szűrő () használatával
lista3= [lista(szűrő(lambdan: nban benlista1,slist)) számáraslistban benlista2]

# Lista nyomtatása1
nyomtatás('Az 1. lista értékei: n',lista1)
# Lista nyomtatása2
nyomtatás('A 2. lista értékei: n',lista2)
# Lista nyomtatása3
nyomtatás('A lista3 értékei a lista1 és lista2 metszéspontja után: n',lista3)

Kimenet

A szkript futtatása után a következő kimenet jelenik meg. A list2 változó listaelemként három másik listát is tartalmaz. Tehát az eredmény a lista2 e három allistája és a lista1 metszéspontját mutatja.

Következtetés

A lista metszéspontja hasznos módja annak, hogy megtaláljuk a nagy értékű listatelemeket tartalmazó listák közös értékeit. Ebben a bemutatóban bemutatjuk a lista metszésének módszereit beépített funkciókkal és azok nélkül. A cikk elolvasása után a lista metszéspontjának fogalmának világosnak kell lennie, és képesnek kell lennie arra, hogy a lista metszéspontját alkalmazza a szkriptben az oktatóanyagban bemutatott módon.