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.

  1. Tulostimen parametri
  2. Toistettava
  3. 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:

  1. Lista ymmärtäminen on helppoa ymmärtää ja tekee koodista tyylikkään. Voimme kirjoittaa ohjelman yksinkertaisin lausekkein.
  2. 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
Silmukalle787 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-

  1. Rakentaja Java
  2. Lajittelu Java
  3. Rakentaja Java
  4. JCheckBox Java
  5. Opas lajitteluun C # -mallissa esimerkkien avulla
  6. Järjestämistoiminto Pythonissa esimerkkien avulla
  7. Silmukoita VBScript-ohjelmassa esimerkkien kanssa
  8. Esimerkkejä Bootstrap-valintaruudun toteuttamisesta