Pythonissa on erilaisia tietotyyppejä, joilla voidaan tallentaa kokoelma tietoja. Python-lista on yksi niistä ja lista voi sisältää erilaisia tietotyyppejä, kuten numeron, merkkijonon, boolean jne. Joskus tarvitaan tiettyjen elementtien etsimistä listasta. Elementtejä voidaan hakea python-luettelosta eri tavoin. Miten voit etsiä mitä tahansa elementtiä ja listan elementtejä listasta, selitetään tässä opetusohjelmassa erilaisten esimerkkien avulla.
- Esimerkki-1: Yksittäisen elementin etsiminen listasta käyttämällä ’in’-operaattoria
- Esimerkki-2: Elementin etsiminen indeksimenetelmää käyttäen
- Esimerkki-3: Useiden indeksien etsiminen luettelosta
- Esimerkki 4: Elementin etsiminen mukautetulla funktiolla
- Esimerkki-5: Listan elementtien etsiminen ja laskeminen pituuden perusteella
- Johtopäätös:
Esimerkki-1: Yksittäisen elementin etsiminen listasta käyttämällä ’in’-operaattoria
Seuraava skripti näyttää, miten voit helposti hakea mitä tahansa elementtiä listasta käyttämällä ’in’-operaattoria ilman silmukkaa. Skriptissä määritellään luettelo kukkien nimistä, ja käyttäjältä otetaan syötteenä kukkien nimi, jota haetaan luettelosta. If-lauseketta käytetään ’in’-operaattorin kanssa syötetyn kukannimen etsimiseen luettelosta.
# Määritellään kukkien luettelo
kukkanimiList =
# Otetaan sen kukan nimi, jota halutaan hakea luettelosta
kukkanimi = input(”Syötä kukannimi:”)
# Etsitään elementti ’in’-operaattorin avulla
if kukkanimi.lower() in flowerList:
# Tulosta onnistumisviesti
print(”%s on löytynyt listasta” %(flowerName))
else:
# Tulosta ei löytynyt viesti
print(”%s ei löytynyt listasta” %(flowerName))
Tulos:
Tuloste osoittaa, että narsissi on olemassa luettelossa ja lilja ei ole olemassa luettelossa.
Esimerkki-2: Elementin etsiminen indeksimenetelmää käyttäen
Toinen yksinkertainen tapa löytää tietty elementti luettelosta indeksimenetelmää käyttäen. Seuraava skripti näyttää index()-metodin käytön elementin etsimiseen luettelosta. Tämä metodi palauttaa kelvollisen indeksin sijainnin, jos kyseinen elementti löytyy luettelosta, muuten se tuottaa ValueError-virheen, jos sijainti halutaan tallentaa muuttujaan. try-lohko tulostaa onnistumisviestin, jos index()-metodi palauttaa kelvollisen sijainnin arvon hakuarvon perusteella. except-lohko tulostaa epäonnistumisviestin, jos etsittävää elementtiä ei ole luettelossa.
try:
# Määrittele lista kirjoista
bookList =
# Ota listaan haettavan kirjan nimi
bookName = input(”Kirjoita kirjan nimi:”)
# Hae elementtiä index-metodilla
search_pos = int(bookList.index(bookName))
# Tulosta löydetty viesti
print(”%s kirja on löydetty luettelosta” %(bookName))
except(ValueError):
# Tulosta ei löydetty viesti
print(”%s kirjaa ei löydetty luettelosta” %(bookName))
Tulos:
Tulos osoittaa, että ’Goodnight Moon’ on olemassa luettelossa ja että ’Charlie ja suklaatehdas’ ei ole olemassa luettelossa.
Esimerkki-3: Useiden indeksien etsiminen luettelosta
Kahdessa aiemmassa esimerkissä näytetään, miten yksittäinen elementti voidaan löytää luettelosta. Seuraavassa skriptissä näytetään, miten voit etsiä kaikki listan elementit toisen listan sisältä. Tässä skriptissä käytetään kolmea listaa. selectedList on päälista, josta searchListin elementtejä etsitään. foundListiä käytetään tässä tallentamaan ne elementit, jotka löytyvät selectedLististä haun jälkeen. Ensimmäistä for-silmukkaa käytetään foundList:n luomiseen ja toista for-silmukkaa foundList:n iterointiin ja tulosteen näyttämiseen.
# Määritellään valittujen henkilöiden lista
selectedList =
# Määritellään etsittävien henkilöiden lista
searchList =
# Määritellään tyhjä lista
foundList =
# Iteroidaan kukin elementti valitusta listasta
for index, sList in enumerate(selectedList):
# Sovita elementti searchList:n elementtiin
if sList in searchList:
# Tallenna arvo foundList:iin, jos vastaavuus löytyy
foundList.append(selectedList)
# iteroi searchList
for val in searchList:
# Tarkista, onko arvo olemassa foundListissä vai ei
if val in foundList:
print(”%s on valittu.\n” %val)
else:
print(”%s ei ole valittu. \n” %val)
Tulos:
Sanan suorittamisen jälkeen tulee seuraava tuloste.
Esimerkki 4: Elementin etsiminen mukautetulla funktiolla
Jos haluat löytää elementin useita kertoja luettelosta, on parempi käyttää mukautettua hakumenetelmää sen sijaan, että kirjoitat hakuskriptin useita kertoja. Seuraavassa skriptissä näytetään, miten voit etsiä minkä tahansa arvon luettelosta käyttämällä mukautettua funktiota nimeltä findElement. Funktio palauttaa True, jos lista sisältää etsittävän elementin, muuten palauttaa False.
# Määrittele lista ruokia
ruoka =
# Ota käyttäjältä ruoan nimi
haku = input(’Kirjoita lempiruokasi : ’)
# Määrittele mukautettu funktio, jolla etsitään elementti listasta
def findElement(listName, searchElement):
# Lue lista silmukan avulla
for value in listName:
# Tarkista, onko elementin arvo sama kuin hakuarvo vai ei
if value == searchElement:
return True
# Palauta false, jos vastaavuutta ei löydy
return False
# Kutsu funktiota listan nimellä ja hakuarvolla
if findElement(food, search.lower()):
print(”%s löytyy” %search)
else:
print(”%s ei löydy” %search)
Tulos:
Syötteille ’Kakku’ ja ’Suklaakakku’ tulee seuraava tuloste.
Esimerkki-5: Listan elementtien etsiminen ja laskeminen pituuden perusteella
Seuraavassa skriptissä näytetään, miten voit etsiä ja laskea luettelon elementtien määrän elementin pituuden perusteella. Tässä listaa nimeltä henkilöt iteroidaan for-silmukan avulla ja tarkistetaan listan jokaisen elementin pituus. Laskurin arvo kasvaa, jos elementin pituus on suurempi tai yhtä suuri kuin 7.
# Määritellään lista henkilöistä
persons =
# Alustetaan laskuri
counter = 0
# Iteroidaan listaa käyttäen silmukkaa
for name in persons:
# Tarkistetaan elementin pituus
if (len(name) >= 7) :
# Lisää laskuria yhdellä
laskuri = laskuri + 1
# Tarkista laskurin arvo
if (laskuri > 0):
print(”%d henkilö(n) nimen pituus on/on yli 7.” %counter)
else:
print(”Kaikkien henkilöiden nimien pituudet ovat alle 7.”)
Tulos:
Skriptin suorittamisen jälkeen näyttöön ilmestyy seuraava tuloste.
Johtopäätös:
Tämässä opetusohjelmassa näytetään erilaisia tapoja hakea yksittäisiä ja useampia elementtejä luettelosta in-operaattorilla, indeksi-menetelmällä ja mukautetulla funktiolla. Lukija pystyy suorittamaan haun oikein python-luettelossa luettuaan tämän opetusohjelman.
Katso tekijän video: täällä