Johdatus Python-luettelon ymmärtämiseen
Python-luettelon ymmärtäminen on toinen tapa luoda luetteloita iterointitoiminnon avulla. Se toimii samalla tavalla kuin silmukka toimii, mutta LC: tä käytetään erityisesti luetteloiden palauttamiseen. Listatiedot ovat lausekkeiden sisällä suluissa, kuten normaalin luettelon luominen, lauseke suoritetaan kaikille elementeille.
Listatietojen ymmärtäminen on erittäin hyödyllistä tietotekniikassa, jossa luetellaan luetteloita / suodatetaan sarakkeiden nimiä / poistetaan kohteita luetteloista jne. Vaikka voimme käyttää silmukoita ja lambda-toimintoja suorittaaksemme joitain toimia, luettelon ymmärtäminen tarjoaa tyylikkään ja yksinkertaisen tavan edustaa samaa.
Listatietojen avulla voidaan korvata kartta (), pienentää () ja suodattaa () menetelmiä.
Luettelon ymmärtäminen on kuin lukiokurssien Set Theory.
Esimerkki:
( x: x is a natural number greater than 15 )
( x: x is a vowel in word 'Data Science', x is a vowel )
Luomme luettelon ymmärtäminen kahdelle edellä mainitulle lauseelle.
(x for x in range(0, 20) if x>15) (x for x in 'Data Science' if x in ('a', 'e', 'i', 'o', 'u'))
lähtö:
(16, 17, 18, 19) ('a', 'a', 'i', 'e', 'e')Luettelon käsitys on helppo ymmärtää ja toteuttaa. Periaatteessa nämä luodaan pöydille. On kolme asiaa, jotka on otettava huomioon kirjoitettaessa luettelon ymmärtämisen syntaksia.
- Tulostimen parametri
- Toistettava
- olosuhteet
Syntaksissa voi olla kaksi yllä olevaa tai 3 edellä olevista syntaksiksi luettelon ymmärtämistä varten.
Syntaksi:
(output parameter | The Iterable)
(output Parameter | The Iterable | Condition )
Esimerkkejä Python-luettelon ymmärtämisestä
Tässä keskustellaan siitä, kuinka luettelon ymmärtämistä voidaan käyttää pythonilla. Näemme esimerkit eri tavalla, kun ajamme sitä silmukalle ja sitten luomme saman luettelotietojen avulla.
Esimerkki 1: Täydellisten neliöiden löytäminen
Seuraavassa on esimerkkejä täydellisistä neliöistä, joilla on erilaiset olosuhteet:
1. With for Loop
for i in range(1, 30):
if int(i**0.5)==i**0.5:
print(i)
2. Listatietojen käyttäminen
(x for x in range(1, 30) if int(x**0.5)==x**0.5)
lähtö:
Esimerkki 2: Hanki vain konsonantit lauseesta
Otetaan tässä yksi mielivaltainen lause ja yritämme saada lauseessa konsonantit tulokseksi.
1. For For Loop -sovelluksen käyttö
def consonants_for(sentence):
vowels = 'aeiou'
consonants = () for x in sentence:
if x not in vowels:
consonants.append(x)
return ''.join(consonants)
sentence = 'we are studying list comprehensions'
print("With For Loop : " + consonants_for(sentence))
lähtö:
With For Loop: wr stdyng lst cmprhnsns
2. Luettelon ymmärtämisen käyttö
def consonants_lc(sentence):
vowels = 'aeiou'
return ''.join(( x for x in sentence if x not in vowels))
sentence = 'we are studying list comprehensions'
print("Using List Compr: " + consonants_lc(sentence))
lähtö:
List Compr: n käyttö: wr stdyng lst cmprhnsns
Esimerkki 3: Sanakirjan luominen kahdesta, toisin kuin luettelot
Tässä on esimerkkejä sanakirjasta, jolla on seuraavat ehdot:
1. For For Loop -sovelluksen käyttö
def dict_for(keys, values):
dictionary = ()
for i in range(len(keys)):
dictionary(keys(i)) = values(i) return dictionary
Movie = ('RDB', 'Wanted', 'DDLG', 'Sholay', 'War', ) Actor = ('Aamire', 'Salman', 'SRK', 'Amitabh', 'Hritik') print("FOR-loop result: " + str(dict_for(Movie, Actor)))
lähtö:
FOR-silmukkatulos: ('RDB': 'Aamire', 'Wanted': 'Salman', 'DDLG': 'SRK', 'Sholay': 'Amitabh', 'War': 'Hritik')
2. Luettelon ymmärtämisen käyttö
def dict_lc(keys, values):
return ( keys(i) : values(i) for i in range(len(keys)) )
Movie = ('RDB', 'Wanted', 'DDLG', 'Sholay', 'War', ) Actor = ('Aamire', 'Salman', 'SRK', 'Amitabh', 'Hritik') print("LC result : " + str(dict_lc(Movie, Actor)))
lähtö:
LC-tulos: ('RDB': 'Aamire', 'Wanted': 'Salman', 'DDLG': 'SRK', 'Sholay': 'Amitabh', 'War': 'Hritik')
Python-luettelon ymmärtämisen edut
Listakäsitteet suorittavat saman tehtävän, mutta eri tavalla!
Luettelon ymmärtämisellä on monia etuja silmukkaan ja muihin menetelmiin nähden. Jotkut edut ovat seuraavat:
- Lista ymmärtäminen on helppoa ymmärtää ja tekee koodista tyylikkään. Voimme kirjoittaa ohjelman yksinkertaisin lausekkein.
- Luettelon ymmärtäminen on paljon nopeampaa kuin silmukan ja muiden menetelmien, kuten kartan, tapauksessa. (Sama selitetään alla olevassa esimerkissä:
Otetaan esimerkki 1 viitteeksi ja lasketaan aika, joka eri menetelmillä kuluu saman toiminnon suorittamiseen. Ensin näemme ajan, jonka “silmukka” vaatii, ja sitten aika otetaan map () -menetelmällä, ja viimeinkin nähdään luettelon ymmärtämiseen kuluva aika.
Taulukko näyttää eri tekniikoiden käyttämän ajan.
1. Loopille
Esimerkki seuraavan silmukan käyttämisestä:
Koodi:
def perf_square(x):
output = () for i in x:
if int(i**0.5)==i**0.5:
output.append(i)
return output
%timeit perf_square(range(1, 30))
2. Karttamenetelmä
Esimerkki käyttämällä alla olevaa karttamenetelmää:
Koodi:
def perf_square_map(x):
return map(lambda i: i**0.5==i**0.5, x)
%timeit perf_square_map(range(1, 30))
3. Luettelo ymmärrykset
Esimerkki käyttämällä alla olevaa luettelon ymmärtämistä:
Koodi:
def perf_square_lc(x):
return (i**0.5 == i**0.5 for i in x) %timeit perf_square_lc(range(1, 30))
lähtö:
Menetelmä | Aika |
Silmukalle | 787 ns |
Kartta () -menetelmä | 518 ns |
Luettelo ymmärryksiä | 276 ns |
Luettelon ymmärtämisen selvästi ajoaika on 2, 85 kertaa nopeampi kuin silmukan ja 1, 87 kertaa nopeampi kuin karttamenetelmä. Listatiedot ymmärtävät muita menetelmiä taakse suurella marginaalilla. Siellä voi olla spekulointia, miksi emme vain käytä LC: tä kaikissa paikoissa eikä silmukoita? LC on nopein useimmissa tapauksissa ja se voi korvata silmukat lähes 80% tapauksista. Mutta emme voi korvata silmukoita, joissain tapauksissa meillä on hyvä määrä ehtoja ja luokat ovat sisäkkäin silmukassa. Näissä tapauksissa LC: n käyttö voi olla melko hankalaa eikä myöskään mahdollista. On parempi mennä silmukoihin sellaisissa tilanteissa. Vaikka silmukoiden luettelon ymmärtämistä voidaan käyttää korvaamaan toinen silmukoihin. Se lyhentää suoritusaikaa ja ylläpitää koodin käyttäjäystävällisyyttä.
- Voimme sijoittaa useita ehtoja luettelon ymmärtämiseen.
- LC voi suorittaa useita muuttuvia manipulaatioita.
- Tulostimen saamiseksi ei tarvitse antaa erillistä komentoa.
- Lista ymmärtäminen vähentää koodin monimutkaisuutta.
- Luettelon ymmärtäminen on tehokasta.
johtopäätös
Lista ymmärtämistä käytetään luomaan luetteloita iteratiivisesta prosessista. Luettelon ymmärtäminen on helppoa ymmärtää / toteuttaa ja tekee koodista tyylikkään. Listatiedot ovat kompakteja ja käyttäjäystävällisiä.
Olemme keskustelleet luettelon ymmärtämisen syntaksista sekä hyviä oivaltavia esimerkkejä. Viimeinkin kirjoitimme yhden ohjelman saadaksesi aikataulun jokaisesta menetelmästä. Päätelimme, että LC on 2, 85 kertaa nopeampi kuin silmukka ja 1, 87 kertaa nopeampi kuin map () -menetelmä.
Suositellut artikkelit
Tämä on opas Python-luettelon ymmärtämiseen. Tässä keskustellaan python-luettelon ymmärtämisen eduista sekä syntaksista ja esimerkeistä eri olosuhteissa. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja-
- Rakentaja Java
- Lajittelu Java
- Rakentaja Java
- JCheckBox Java
- Opas lajitteluun C # -mallissa esimerkkien avulla
- Järjestämistoiminto Pythonissa esimerkkien avulla
- Silmukoita VBScript-ohjelmassa esimerkkien kanssa
- Esimerkkejä Bootstrap-valintaruudun toteuttamisesta