1. ProgrammingPythonHogyan lehet használni a Lambda funkciókat a Pythonban

Írta: Alan Shovic, John Shovic

A Python támogatja az anonim funkciók fogalmát, más néven lambda függvényeket. A név anonim része azon a tényen alapszik, hogy a funkciónak nem kell nevet adnia (de lehet, ha szeretne). A lambda rész a lambda kulcsszó használatán alapszik, hogy Pythonban meghatározzák azokat. A Lambda a görög ábécé tizenegyedik betűje.

A név Pythonban való használatának fő oka az, hogy a lambda kifejezést használják a kalkulus névtelen függvényeinek leírására. Most, hogy tisztázták ezt, felhasználhatja ezt az információt a lenyűgöző beszélgetés kezdeményezésére irodai partikban.

A lambda kifejezés (név nélküli) Python-val történő meghatározásának minimális szintaxisa:

Lambda érvek: kifejezés

Használatakor:

  • Cserélje ki az argumentumokat az adatok átvitelekor a kifejezésbe. Cserélje ki a kifejezést egy kifejezésre (képletre), amely meghatározza, hogy a lambda hogyan térjen vissza.

Ennek a szintaxisnak a meglehetősen általános példája az, amikor megpróbálja rendezni a szöveges karaktereket, ahol néhány név nagybetűkkel kezdődik, míg mások kisbetűkkel kezdődnek, mint ezekben a nevekben:

Adams, Ma, diMeola, Zandusky

Tegyük fel, hogy a következő kódot írja, hogy a neveket listába sorolja, rendezze, majd kinyomtassa a listát, így:

nevek = ['Adams', 'Ma', 'diMeola', 'Zandusky']
names.sort ()
print (nevek)

Ebből az eredmény:

['Adams', 'Ma', 'Zandusky', 'diMeola']

Ha a diMeola Zandusky után jön, tévesnek tűnik néhány kezdő. De a számítógépek nem mindig látják a dolgokat úgy, ahogy mi. (Valójában nem látnak semmit, mert nincs szemük vagy agyuk, de ez a lényeg mellett van.) A diMeola Zandusky után jön azért, mert a fajta alapja az ASCII, amely egy olyan rendszer, amelyben minden a karaktert egy szám jelöli.

Az összes kisbetű nagyobb számmal rendelkezik, mint a nagybetű. Tehát a rendezés során a kisbetűvel kezdődő szavak a nagybetűvel kezdődő szavakat követik. Ha semmi más, akkor legalább egy kisebb hmm-t garantál.

Ezeknek a kérdéseknek a megkönnyítése érdekében a Python sort () módszer lehetővé teszi a key = kifejezés beillesztését a zárójelbe, ahol meg lehet mondani, hogyan kell rendezni. A szintaxis:

.sort (kulcs = átalakítás)

A transzformációs rész a válogatott adatok némi variációja. Ha szerencséd van, és az egyik beépített funkció, mint például a len (hosszúságban) működik az Ön számára, akkor ezt csak a transzformáció helyett használhatja, például:

names.sort (kulcs = LEN)

Számunkra sajnos a karakterlánc hossza nem segíti az ábécé rendezését. Tehát amikor ezt futtatja, a sorrend kiderül:

['Ma', 'Adams', 'diMeola', 'Zandusky']

A rendezés a legrövidebb karakterlánctól (a legkevesebb karakterrel) a leghosszabb karakterláncig megy át. Jelenleg nem segítőkész.

Nem írhat kulcs = alsó vagy kulcs = felső beállítást sem az összes kisbetűre, sem az összes nagybetűre, mert az alsó és a felső nem beépített funkciók (amelyeket elég gyorsan ellenőrizhet a beépített Python 3.7 googling segítségével) funkciók).

A beépített függvény helyett használhat egy egyéni függvényt, amelyet def segítségével definiál. Létrehozhat például egy alacsonyabb () nevű függvényt, amely elfogad egy karakterláncot, és visszaadja azt a karakterláncot, annak összes betűjével kisbetűvé konvertálva. Itt van a funkció:

def alsó (anystring):
"" "Karakterláncot alakít át minden kisbetűsre" ""
vissza anystring.lower ()

Az alsó név alkotja, és az anystring helyőrzője annak a karakterláncnak, amelyet a jövőben átadsz neki. A visszatérő anystring.lower () visszaadja azt a karakterláncot, amely az összes (kisbetűsre) konvertált str (string) objektum .lower () metódusával lett konvertálva. (További információt a Python-karakterlánc-módszerekről olvashat.)

A sort = (alacsonyabb) gombot nem használhatja a sort () zárójelben, mert az alacsonyabb () nem beépített funkció. Ez egy módszer ... nem ugyanaz. Olyan idegesítő, mint ezek a szóbeszédek.

Tegyük fel, hogy ezt a funkciót Jupyter cellába vagy .py fájlba írja. Akkor ezt a funkciót úgy hívja meg, mint a nyomtatás (kisbetűs ('Zandusky')). Amit outputként kapja, az az a karakterlánc, amelyet minden kisbetűvé konvertálnak, ahogy az alább látható.

az egyéni függvény alacsonyabb () Pythonban

Oké, tehát most már van egy egyedi funkciója, amely bármilyen karakterláncot kisbetűkké konvertálhat. Hogyan használhatja ezt rendezési kulcsként? Könnyű, használja a key = transzformációt ugyanúgy, mint korábban, de cserélje le az átalakítást az egyéni függvény nevére. A függvény kisbetűsnek nevezi, tehát a .sort (kulcs = kisbetű) használná, az alábbiak szerint:

def kisbetűs (anystring):
"" "Karakterláncot alakít át minden kisbetűsre" ""
vissza anystring.lower ()
 
nevek = ['Adams', 'Ma', 'diMeola', 'Zandusky']
names.sort (kulcs = lowercaseof)

Ha ezt a kódot futtatja a nevek listájának megjelenítéséhez, akkor a megfelelő sorrendbe állítja őket, mert az a sort a kisbetűs karakterláncokra alapozta. A kimenet ugyanaz, mint korábban, mert csak a színfalak mögött zajló válogatás használt kisbetűket. Az eredeti adatok továbbra is az eredeti nagybetűkkel vannak ellátva.

'Adams', 'diMeola', 'Ma', 'Zandusky'

Ha mindezek elolvasása után még ébren vagy és tudatában vagy, akkor arra gondolsz: “Oké, megoldotta a rendezési problémát. De azt hittem, itt beszélünk a lambda funkciókról. Hol van a lambda funkció? ”Még nincs lambda funkció.

De ez egy tökéletes példa arra, ahol használhatja a lambda függvényt, mert a hívott Python függvény, a kisbetűs (), minden munkáját egyetlen kódsorral végzi: return anystring.lower ().

Ha a függvény egy egyszerű egysoros kifejezéssel meg tudja csinálni a dolgát, akkor kihagyhatja a def és a függvény nevét, és csak ezt a szintaxist használhatja:

lambda paraméterek: kifejezés

Cserélje ki a paramétereket egy vagy több paraméter nevére, amelyeket saját maga alkot (a zárójelben lévő nevek def után és a függvény neve egy normál függvényben). Cserélje ki azt a kifejezést, amellyel vissza szeretné érni a függvényt a visszatérés szó nélkül. Tehát ebben a példában a kulcs egy lambda kifejezés használatával lenne:

lambda anystring: anystring.lower ()

Most már láthatja, hogy miért anonim funkció. A kisbetűs () függvénynév első első sorát eltávolították. A lambda kifejezés használatának előnye tehát az, hogy egyáltalán nem is kell a külső egyedi funkcióra. Szüksége van csak a kettőspont követő paraméterre és egy kifejezésre, amely megmondja, hogy mit kell visszatérnie.

Az alábbi kép a teljes kódot és annak futtatásának eredményét mutatja. Megkapja a megfelelő rendezési rendet anélkül, hogy az ügyfél külső funkciójára lenne szükség, mint például az alacsonybetűs (). Csak anystring-et használ: anystring.lower () (a lambda szó után), mint rendezési kulcs.

Python lambda kifejezés

Tegyük hozzá, hogy az anystring hosszabb paraméternév, mint a legtöbb Pythonistas használná. A Python emberek kedvelik a rövid neveket, még az egybetűs neveket is. Például az ansztringot helyettesítheti s-vel (vagy bármilyen más betűvel), mint az alábbiak szerint, és a kód pontosan ugyanazt fog működni:

nevek = ['Adams', 'Ma', 'diMeola', 'Zandusky']
names.sort (kulcs = lambda s: s.lower ())
print (nevek)

Visszatérve e tirada elején, megemlítették, hogy a lambda funkciónak nem kell névtelennek lennie. Neveket adhat nekik, és felhívhatja őket, mint más funkciókat.

Például itt van egy valuta elnevezésű lambda függvény, amely bármilyen számot felvesz, és egy karakterláncot ad vissza valuta formátumban (vagyis egy vezető dollárjelet vesszőkkel tesz ezrek között és két számjegyet a fillérekért):

currency = lambda n: f "$ {n:,. 2f}"

Itt van egy megnevezett százalék, amely megszorozza az Ön számára küldött számot 100-mal, és a végén két százalékjelet mutat meg:

százalék = lambda n: f "{n: .2%}"

Az alábbi kép a Jupyter cella tetején meghatározott mindkét funkció példáit mutatja. Ezután néhány nyomtatási nyilatkozat név szerint hívja fel a függvényeket, és átad nekik néhány minta adatot. Minden nyomtatási () nyilatkozat megjeleníti a számot a kívánt formátumban.

Python formázó számok

Azért definiálhatja ezeket egysoros lambdaként, mert az összes munkát egy sorban végezheti el, az elsőnél f "$ {n:,. 2f}", az f "{n: .2%}" pedig a második. De csak azért, mert így megteheti, nem azt jelenti, hogy meg kell tennie. A szokásos funkciókat is használhatja, az alábbiak szerint:

# A szám megjelenítése valuta formátumban.
def valuta (n):
visszatérés f "$ {n:,. 2f}"
 
def százalék (n):
# A szám megjelenítése százalékos formátumban.
visszatérés f "{n: .2%}"

Ezzel a hosszabb szintaxissal további információkat is átadhat. Például alapértelmezésként megadhatja a jobb szélen igazított formátumot egy bizonyos szélességen belül (mondjuk 15 karakter), így minden szám jobbra igazítva jött ki ugyanarra a szélességre. A kép ezt a variációt mutatja a két funkciónál.

Python formázási funkció rögzített szélesség

A fenti képen a második paraméter nem kötelező, és alapértelmezés szerint 15, ha kihagyja. Tehát ha így hívod:

print (valuta (9999))

… 9 999,00 dollár párnát kap, annyi bal oldali teret hagyva, hogy 15 karakter hosszú legyen. Ha inkább így hívja:

print (deviza (9999,20)

… Még mindig 9 999,00 dollárt kap, de anélkül, hogy elegendő hely van a bal oldalon, hogy 20 karakter hosszú legyen.

A fentiekben használt .ljust () egy Python beépített karakterlánc-módszer, amely egy karakterlánc bal oldalát megfelelő távolsággal lefedi, hogy a megadott szélességűvé váljon. Van egy rjust () módszer is a jobb oldal megtöltésére. Megadhat egy szóköztől eltérő karaktert is. Ha a Google Python 3-ban még több információra van szüksége, akkor csak igazítsa meg.

Szóval megvan az a képessége, hogy saját Pythonban létrehozhassa saját egyedi funkcióit. A való életben azt akarja tenni, hogy bármikor észlelheti, hogy újra és újra ugyanahhoz a kódrészhez - ugyanannak a bejelentkezési bitnek - kell újra és újra meg töltenie az alkalmazást, ne csak másolja / illessze be ezt a darabot kód újra és újra. Ehelyett tedd ezt a kódot egy olyan funkcióba, amelyet név szerint hívhat meg.

Ilyen módon, ha úgy dönt, hogy megváltoztatja a Python karakterlánckódot, akkor nem kell feltöltenie az alkalmazást, hogy megtalálja az összes helyet, amelyet meg kell változtatni. Csak változtassa meg azt a funkciót, ahol mind egy helyen meg van határozva.

  1. ProgrammingPythonHogyan lehet meghatározni és használni a Python listákat

Írta: Alan Shovic, John Shovic

A Python legegyszerűbb adatgyűjtése egy lista. A lista az adatelemek bármilyen listája, vesszővel elválasztva, szögletes zárójelben. Általában egy nevet rendel a Python listához egy = jel használatával, ugyanúgy, mint a változók esetében. Ha a lista számokat tartalmaz, akkor ne használjon idézőjeleket körülöttük. Itt található például a teszteredmények listája:

pontszámok = [88, 92, 78, 90, 98, 84]

Ha a lista karakterláncokat tartalmaz, akkor, mint mindig, ezeket a karakterláncokat egyszeres vagy dupla idézőjelekbe kell csatolni, mint az ebben a példában:

A lista tartalmának a képernyőn történő megjelenítéséhez ugyanúgy kinyomtathatja, mint bármelyik normál változót. Például, ha elvégzi a nyomtatást (hallgatók) a kódban, miután meghatározta a listát, ez megjelenik a képernyőn.

['Mark', 'Amber', 'Todd', 'Anita', 'Sandy']

Lehet, hogy nem pontosan ezt gondolta. De ne aggódjon, a Python számos nagyszerű lehetőséget kínál a listákban szereplő adatok elérésére és az Ön tetszés szerinti megjelenítésére.

A Python-lista elemek hivatkozása helyzet szerint

A lista minden elemének nullával kezdődő pozíciószáma van, annak ellenére, hogy nem látsz számot. A lista bármely elemére a számának felhasználásával hivatkozhat a lista nevével, amelyet egy szögletes zárójelben megadott szám követ. Más szavakkal, használja ezt a szintaxist:

listanév [x]

Cserélje ki a lista nevét a megtekintett lista nevére, és cserélje ki az x -et a kívánt tétel pozíciószámára. Ne feledje, hogy az első elem mindig nulla, nem egy. Például az alábbi első sorban meghatározom a hallgatók nevű listát, majd kinyomtatom a zéró elemet a listából. A kód végrehajtásakor a Mark név jelenik meg.
hallgatók = ["Mark", "Amber", "Todd", "Anita", "Sandy"]
print (diákok [0])
Mark

A hozzáférési lista elemeinek olvasásakor a szakemberek a szám elé az sub szót használják. Például a [0] hallgatókat a nulla alatti hallgatókkal beszélik.

Ez a következő példa egy pontszámokat tartalmazó listát mutat. A print () funkció kinyomtatja a lista utolsó pontszámának pozíciószámát, amely 4 (mert az első mindig nulla).

pontszámok = [88, 92, 78, 90, 84]
Nyomtatás (pontszámok [4])
84

Ha megkísérel elérni egy nem létező listaelemet, akkor egy „tartományon kívüli index” hibát kap. Az index rész a szögletes zárójelben szereplő számra utal. Például az alábbi kép egy kis kísérletet mutat egy Jupyter notebookban, ahol a pontszámokat elkészítették, majd megkíséreltek kinyomtatni a pontszámot [5].

Nem sikerült, és hibát generált, mert nincs pontszám [5]. Csak pontszámok [0], pontszámok [1], pontszámok [2], pontszámok [3] és pontszámok [4] vannak, mert a számolás mindig nullánál kezdődik, amikor a lista első van.

Python index tartomány

Áttekintés Python listán

A lista egyes elemeinek eléréséhez csak használjon a for hurkot a következő szintaxissal:

x esetén a listában:

Cserélje ki a x értéket a választott változó nevére. Cserélje ki a listát a lista nevére. A kód olvashatóvá tételének egyszerű módja, ha mindig többes számot használ a lista nevére (például hallgatók, pontszámok). Ezután az egyedi számot (hallgató, pontszám) használhatja a változó névhez. Ehhez a megközelítéshez nem kell aláíró számokat (szögletes zárójelben megadott számokat) használni. Például a következő kód nyomtatja ki az összes pontszámot a pontszámokat tartalmazó listában:

pontszámért pontszámban:
print (pontszám)

Ne feledje, hogy mindig behúzza a kódot, amelyet a hurokban kell végrehajtani. Ez a kép egy teljesebb példát mutat, ahol láthatja a kód futtatásának eredményét a Jupyter notebookban.

Áttekintés Python listán

Annak ellenőrzése, hogy a Python lista tartalmaz-e egy elemet

Ha azt akarja, hogy a kódja ellenőrizze a lista tartalmát, hogy megnézze, tartalmaz-e már valamelyik elemet, akkor használja a listname-t if utasításban vagy változó hozzárendelésben.

Például az alábbi képen látható kód létrehoz egy nevek listáját. Ezután két változó tárolja az Anita és Bob nevek listájának keresésének eredményeit. Az egyes változók tartalmának kinyomtatásakor az Igaz lesz az, amelyben a név (Anita) szerepel a listában. A teszt annak ellenőrzésére, hogy Bob szerepel-e a listán, hamisnak bizonyul.

Annak megtekintése, hogy egy elem szerepel-e a Python-listában

A Python-lista hossza

A len () függvény használatával (rövid hosszúságú) meghatározhatja, hogy hány elem van egy listában. Helyezze a lista nevét a zárójelbe. Írja be például a következő kódot egy Jupyter notebook vagy Python promptba, vagy bármi másba:

hallgatók = ["Mark", "Amber", "Todd", "Anita", "Sandy"]
print (len (tanulók))

A kód futtatása előállítja ezt a kimenetet:

5

Valójában öt tétel van a listában, bár az utolsó mindig kevesebb, mint a szám, mert a Python nullára kezd számolni. Tehát az utolsó, Sandy, valójában a hallgatókra [4] vonatkozik, nem pedig a hallgatókra [5].

Elem hozzáadása a Python-lista végéhez

Ha azt akarja, hogy a Python kódja új elemet adjon a lista végéhez, akkor használja a .append () metódust, amelyet hozzá kell adni a zárójelbe. Használhat egy változó nevet vagy egy literális értéket az idézőjelekben.

Például a következő képen a students.append ("Goober") feliratú sor hozzáadja a listához a Goober nevet. A students.append (new_student) feliratú sor hozzáadja a listához az new_student nevű változóban tárolt nevet. A .append () módszer mindig hozzáadja a lista végéhez. Tehát, amikor kinyomtatja a listát, látja a két új nevet a végén.

Python függelék lista

Használhat egy teszt segítségével annak megállapításához, hogy egy elem szerepel-e a listában, majd csak akkor csatolhatja azt, ha az elem még nem található meg. Például az alábbi kód nem fogja hozzáadni az Amber nevet a listához, mert ez a név már szerepel a listában:

student_name = "Amanda"

# Adjon hozzá hallgatónevet, de csak akkor, ha még nem szerepel a listában.
ha a hallgató neve a hallgatókban:
    nyomtatás (hallgató_neve + "már szerepel a listában")
más:
    students.append (STUDENT_NAME)
    nyomtatás (hallgató_neve + "hozzáadva a listához")

Elem beszúrása a Python listába

Bár az append () módszer lehetővé teszi egy elem hozzáadását a lista végéhez, az insert () módszer lehetővé teszi, hogy bármilyen pozícióban elemet hozzáadjon a listához. Az insert () szintaxisa

listanév.beillesztés (pozíció, elem)

Cserélje ki a lista nevét a lista nevére, a pozíciót arra a helyre, amelybe be kívánja helyezni az elemet (például 0, ha az első elem, 1 pedig második, és így tovább). Cserélje ki az elemet az értékkel, vagy annak a változónak a nevével, amely tartalmazza az értéket, amelyet fel kíván venni a listába.

Például a következő kód teszi a Lupet a lista első elemévé:

#Készítse el a karakterláncok (nevek) listáját.
hallgatók = ["Mark", "Amber", "Todd", "Anita", "Sandy"]

student_name = "Lupe"
# Adja hozzá a hallgató nevét a lista elejéhez.
students.insert (0, STUDENT_NAME)

#Mutassa meg az új listát.
print (tanulók)

A kód futtatásakor a print (hallgatók) az új név beillesztése után megjeleníti a listát, az alábbiak szerint:

['Lupe', 'Mark', 'Amber', 'Todd', 'Anita', 'Sandy']

Egy elem megváltoztatása a Python listában

Megváltoztathatja a listában egy elemet az = hozzárendelési operátor használatával (nézd meg ezeket a Python operátorokat), csakúgy, mint a változókkal. Csak győződjön meg arról, hogy szerepelteti az indexszámot a megváltoztatni kívánt tétel szögletes zárójelben. A szintaxis:

listanév [index] = newValue

Cserélje ki a lista nevét a lista nevére; cserélje ki az indexet a megváltoztatni kívánt tétel alindexére (indexszámra); és cserélje ki az új értéket bármire, amit fel szeretne venni a listaelembe. Vessen egy pillantást például erre a kódra:

#Készítse el a karakterláncok (nevek) listáját.
hallgatók = ["Mark", "Amber", "Todd", "Anita", "Sandy"]
hallgatók [3] = "Hobart"
print (tanulók)

A kód futtatásakor a kimenet a következő, mert Anita nevét Hobart-ra változtatták.

['Mark', 'Amber', 'Todd', 'Hobart', 'Sandy']

A Python listák kombinálása

Ha két listája van, amelyeket egyetlen listába szeretne kombinálni, akkor használja az exten () függvényt a szintaxissal:

original_list.extend (additional_items_list)

Kódjában cserélje le az original_list helyét annak a listának a nevére, amelyhez új lista elemeket fog hozzáadni. Cserélje a papildu_items_listát annak a listának a nevére, amely tartalmazza az első listához hozzáadni kívánt elemeket. Íme egy egyszerű példa a list1 és list2 nevű listákat használva. A list1.extend (2. lista) végrehajtása után az első lista mindkét lista elemeit tartalmazza, amint azt a print () utasítás kimenete végén láthatja.

# Készítsen két névnevet.
list1 = ["Zara", "Lupe", "Hong", "Alberto", "Jake"]
list2 = ["Huey", "Dewey", "Louie", "Nader", "Bubba"]

# Adjon hozzá list2 neveket az list1 listához.
list1.extend (list2)

# 1. nyomtatási lista.
print (lista1)

['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake', 'Huey', 'Dewey', 'Louie', 'Nader', 'Bubba']

Könnyű Parcheesi, nem?

A Python listaelemek eltávolítása

A Python az eltávolítás () metódust kínálja, így bármilyen értéket eltávolíthat a listáról. Ha az elem többször szerepel a listában, akkor csak az első előfordulást távolítja el. Például a következő kód betűk listáját mutatja, ahol a C betű néhányszor megismétlődik. Ezután a kód a letters.remove ("C") segítségével eltávolítja a C betűt a listáról:

# Vegye ki a "C" -t a listáról.
letters.remove ( "C")

#Mutassa meg az új listát.
print (betűk)

Amikor ténylegesen végrehajtja ezt a kódot, majd kinyomtatja a listát, látni fogja, hogy csak az első C betű került eltávolításra:

['A', 'B', 'D', 'C', 'E', 'C']

Ha el kell távolítania az összes elemet, használhat egy ideig hurkot a .remove megismételéséhez, mindaddig, amíg az elem továbbra is a listában marad. Például, ez a kód megismétli a .remove-t, mindaddig, amíg a „C” továbbra is szerepel a listában.

#Készítse el a karakterláncok listáját.
betűk = ["A", "B", "C", "D", "C", "E", "C"]

Ha egy elemet a listában szereplő pozíciója alapján kíván eltávolítani, használja a pop () -ot indexszámmal, ahelyett, hogy eltávolítja () -ot az értékkel. Ha el akarja távolítani az utolsó elemet a listáról, használja a pop () -ot indexszám nélkül.

Például, a következő kód létrehoz egy listát, az egyik sor eltávolítja az első elemet (0), a másik pedig az utolsó elemet (pop ()), a zárójelben nincs semmi. A lista kinyomtatása azt mutatja, hogy a két elem eltávolításra került:

#Készítse el a karakterláncok listáját.
betűk = ["A", "B", "C", "D", "E", "F", "G"]
 
#Távolítsa el az első elemet.
letters.pop (0)
#Távolítsa el az utolsó elemet.
letters.pop ()
 
#Mutassa meg az új listát.
print (betűk)

A kód futtatása azt mutatja, hogy az első és az utolsó elem felbukkanása valóban működött:

['B', 'C', 'D', 'E', 'F']

Amikor egy elemet felugrik a listáról, akkor az érték másolatát tárolhatja valamilyen változóban. Például ez a kép ugyanazt a kódot mutatja, mint a fentiek. Az eltávolított példányokat azonban az first_removed és last_removed nevű változókban tárolja. A végén kinyomtatja a Python listát, és megmutatja, hogy mely betűket távolították el.

tételek eltávolítása a Python listáról

A Python del (rövid törlés) parancsot is kínál, amely bármely elemet töröl egy listából az indexszáma (pozíciója) alapján. De meg kell emlékezni arra is, hogy az első elem nulla. Tegyük fel, hogy futtatja a következő kódot a 2. tételszám törléséhez a listából:

# Hozzon létre egy listát a karakterláncokról.
betűk = ["A", "B", "C", "D", "E", "F", "G"]
 
# Távolítsa el a 2. alpontot.
del betűk [2]
 
print (betűk)

A kód futtatásával a lista ismét megjelenik, az alábbiak szerint. A C betűt törölték, és ez a helyes tétel a törléshez, mert a betűk számozva vannak 0, 1, 2, 3 és így tovább.

['A', 'B', 'D', 'E', 'F', 'G']

A del segítségével egy teljes listát is törölhet. Csak ne használja a szögletes zárójeleket és az indexszámot. Például az alább látható kód létrehoz egy listát, majd törli azt. A törlés után a lista kinyomtatása hibaüzenetet okoz, mert a lista már nem létezik, amikor a print () utasítást végrehajtják.

törölje a Python listát

Python-lista törlése

Ha törölni szeretne egy lista tartalmát, de nem magát a listát, használja a .clear () parancsot. A lista továbbra is fennáll; azonban nem tartalmaz elemeket. Más szavakkal, ez egy üres lista. A következő kód megmutatja, hogyan lehet ezt tesztelni. A kód futtatása után megjelenik a [] jel, amely tudatja velük, hogy a lista üres:

# Hozzon létre egy listát a karakterláncokról.
betűk = ["A", "B", "C", "D", "E", "F", "G"]
 
# Törölje az összes bejegyzés listáját.
letters.clear ()
 
# Mutassa meg az új listát.
print (betűk)

[]

Megszámoljuk, hogy egy elem hányszor jelenik meg a Python-listában

A Python count () módszerrel kiszámolhatja, hogy egy elem hányszor jelenik meg a listában. A többi listázási módszerhez hasonlóan a szintaxis egyszerű:

listname.count (x)

Cserélje ki a lista nevét a lista nevére, és x a keresett értékre (vagy egy változó nevére, amely ezt az értéket tartalmazza).

Az alábbi képen az .count () zárójelében található B betű felhasználásával számoljuk, hogy hányszor jelenik meg a B betű a listában. Ugyanez a kód a C osztályok számát is számolja, de ezt az értéket egy változóban tárolták csak a szintaxis különbségének bemutatására. Mindkét szám működött, amint azt a program kimenete alján láthatja. Az egyiket az F számlálására adták hozzá, nem használva semmilyen változót. Az F betűket pontosan számolták az üzenetet megjelenítő kódban. Nincsenek F osztályok, tehát ez visszatér nullára, amint azt a kimeneten láthatjuk.

számoljon Python lista elemeket

Amikor a számokat és a karakterláncokat üzenet formájában próbálta kombinálni, ne feledje, hogy a számokat karakterláncokká kell konvertálni az str () függvénnyel. Ellenkező esetben olyan hibaüzenetet kap, amely olyasmit olvas, mintha csak az str (nem "int") összekapcsolódhat az str-rel. Ebben az üzenetben az int rövid egész szám, az str rövid pedig a string.

Megtalálja a Python lista elemének indexét

A Python egy .index () metódust kínál, amely egy listában szereplő elem pozícióját mutató számot ad vissza, az indexszám alapján. A szintaxis:

listname.index (x)

Mint mindig, cserélje ki a listanevet a keresendő lista nevére. Cserélje ki x-re, amit csak keres (akár betűként, akár változó névként, mint mindig). Természetesen nincs garancia arra, hogy az elem szerepel a listában, és még ha így is van, akkor sem garantáljuk, hogy az elem csak egyszer szerepel a listában. Ha az elem nem szerepel a listában, akkor hiba lép fel. Ha az elem többször szerepel a listában, akkor az első egyező elem indexe kerül vissza.

A következő kép egy példát mutat, amelyben a program az f_index = grade.index (look_for) sorban összeomlik, mert a listában nincs F.

Python listaelem

A probléma megkerülésének egyszerű módja az if utasítás használata, hogy megvizsgálja, hogy egy elem szerepel-e a listán, mielőtt megkérdezi az indexszámát. Ha az elem nem szerepel a listában, jelenítsen meg egy ezt mondó üzenetet. Ellenkező esetben szerezze be az indexszámot, és mutassa meg üzenetben. Ez a kód a következő:

# Hozzon létre egy listát a karakterláncokról.
fokozat = ["C", "B", "A", "D", "C", "B", "C"]
# Döntse el, mit kell keresnie
look_for = "F"
# Nézze meg, van-e az elem a listában.
ha look_for osztályokban:
    # Ha szerepel a listában, szerezze be és mutassa meg az indexet.
    print (str (look_for) + "indexnél van" + str (grade.index (look_for)))
más:
    # Ha nem szerepel a listában, akkor ne is próbálkozzon az indexszámmal.
    print (str (look_for) + "nincs a listában.")

A Python listák ábécé rendezése és rendezése

A Python egy sort () módszert kínál a listák rendezésére. Legegyszerűbb formájában ábécé alakítja a listában szereplő tételeket (ha azok karakterláncok). Ha a lista számokat tartalmaz, akkor azokat a legkisebbtől a legnagyobbig osztályozzák. Ilyen egyszerű rendezéshez használja a sort () üres zárójelekkel:

listname.sort ()

Cserélje ki a lista nevét a lista nevére. Az alábbi kép egy példát mutat, amely karakterláncokat és számokat tartalmaz. A példában mindegyikre új listát hoztak létre, egyszerűen azáltal, hogy minden rendezett listát új lista nevével rendelnek. Ezután a kód kinyomtatja az összes rendezett lista tartalmát.

rendezni a Python listát

Ha a listában nagy- és kisbetűk keverékét tartalmazó karaktersorozatok találhatók, és ha a rendezés eredménye nem tűnik megfelelőnek, akkor próbálja meg a .sort () -ot kicserélni .sort -ra (kulcs = lambda s: s.lower ()), majd futtassa újra a kódot.

A dátumok egy kicsit trükkösebb, mert nem egyszerűen gépelni őket, például "2020.12.31." A helyes rendezéshez a dátum adattípusának kell lennie. Ez azt jelenti, hogy a datetime modult és a date () módszert kell használni az egyes dátumok meghatározására. A dátumokat hozzáadhatja a listához, mint bármely más lista. Például, a következő sorban a kód négy dátumlistát hoz létre, és a kód tökéletes.

dátumok = [dátum dátuma (2020,12,31), dátum dátuma (2019,1,31), dátum dátuma (2018,2,28), dátum dátuma (2020,1,1)]

A számítógép minden bizonnyal nem bánja, ha így állítja össze a listát. De ha azt akarja, hogy a kód jobban olvasható legyen magának vagy más fejlesztőknek, érdemes lehet egyes dátumokat létrehozni és csatolni, egyenként, így csak egy kicsit könnyebb megnézni, mi folyik itt, és így nincs oly sok vesszővel kezelni egy kódsorban. Az alábbi kép egy példát mutat, ahol egy datelist nevű üres lista készült:

datelist = []
dátum megjelenítése Pythonban

Ezután egyenként egy dátumot csatoltunk a listához a dt.date (év, hónap, nap) szintaxissal.

A lista létrehozása után a kód a datelist.sort () használatával sorrendbe állítja őket időrendi sorrendbe (legkorábbi legújabb). Nem kell nyomtatást (datelist) használni ebben a kódban, mert ez a módszer megjeleníti a dátumokat és az adattípus információkat, például:

[datetime.date (2018, 2, 28), datetime.date (2019, 1, 31), datetime.date (2020, 1, 1), datetime.date (2020, 12, 31)]

Nem a legegyszerűbben olvasható lista. Tehát ahelyett, hogy a teljes listát egyetlen print () nyilatkozattal kinyomtatná, áthúzhatja a listában szereplő minden dátumot, és mindegyiket kinyomtathatja,% m /% d /% Y f-karakterlánccal formázva. Ez megjeleníti az egyes dátumokat a saját sorában, hh / nn / éééé

Ha fordított sorrendben szeretne rendezni az elemeket, akkor a fordított = igaz szöveget tegye a sort () zárójelbe (és ne felejtse el elkészíteni az első betű nagybetűit). Az alábbi kép példákat mutat mind a három lista csökkenő (fordított) sorrendbe történő rendezésére fordított = True értékkel.

Rendezés információ a Python listában fordítva

A Python-lista megfordítása

A listában szereplő tételek sorrendjét megfordíthatja a .reverse módszer használatával. Ez nem ugyanaz, mint a fordított rendezés, mert ha fordítottan válogat, akkor is ténylegesen válogat: Z – A vonóságokra, a számoktól a legkisebbekig, a legfrissebbek a legkorábbiak a dátumokhoz. Ha egy listát megfordít, akkor egyszerűen megfordítja a listában szereplő tételeket, függetlenül azok sorrendjétől, anélkül, hogy bármilyen módon megpróbálná őket rendezni.

A következő kód egy példát mutat, amelyben megfordítja a listában szereplő nevek sorrendjét, majd kinyomtatja a listát. A kimenet az eredeti sorrendjéhez fordított listát jeleníti meg:

# Hozzon létre egy listát a karakterláncokról.
nevek = ["Zara", "Lupe", "Hong", "Alberto", "Jake"]
# Fordítsa meg a listát
names.reverse ()
# Nyomtassa ki a listát
print (nevek)
 
['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']

Python lista másolása

Ha valaha egy lista másolatával kell dolgoznia, akkor használja a .copy () módszert, hogy ne változtassa meg az eredeti listát. Például a következő kód hasonló az előző kódhoz, azzal a különbséggel, hogy az eredeti lista sorrendjének megfordítása helyett egy másolatot készít a listáról, és megfordítja azt. Az egyes listák tartalmának kinyomtatása megmutatja, hogy az első lista továbbra is az eredeti sorrendben van, míg a második megfordítva:

# Hozzon létre egy listát a karakterláncokról.
nevek = ["Zara", "Lupe", "Hong", "Alberto", "Jake"]
 
# Készítsen egy másolatot a listáról
backward_names = names.copy ()
# Fordítsa meg a másolatot
backward_names.reverse ()
 
# Nyomtassa ki a listát
print (nevek)
print (backward_names)
 
['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake']
['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']

A jövőbeni referenciákhoz az alábbi táblázat foglalja össze a megtanult módszereket.