Luettelo on säilö, joka tallentaa erilaisten tietotyyppien kohteet (muunnokset, kelluvat, loogiset, merkkijonot jne.) Järjestettyyn järjestykseen. Se on tärkeä tietorakenne, joka on sisäänrakennettu Pythonissa. Tiedot kirjoitetaan hakasulkeisiin ([]), ja arvot erotetaan pilkulla (,).
Luettelossa olevat kohteet indeksoidaan ensimmäisen elementin alkaessa indeksistä 0. Voit tehdä muutoksia luotuun luetteloon lisäämällä uusia kohteita tai päivittämällä, poistamalla olemassa olevat. Sillä voi olla myös päällekkäisiä kohteita ja sisäkkäinen luettelo.
Luettelossa on monia menetelmiä, ja tärkein niistä on indeksi ().
Tässä opetusohjelmassa opit:
- Python-luettelo ()
- For-loop-toiminnon avulla saadaan elementin hakemisto luetteloon
- While-loopin ja list.index (): n käyttäminen
- Luettelon ymmärtämisen avulla saat elementin hakemiston luetteloon
- Laskurin avulla saat elementin hakemiston luetteloon
- Suodattimen avulla saat elementin hakemiston luetteloon
- NumPyn avulla saat elementin hakemiston luetteloon
- Käytä more_itertools.locate () -toimintoa saadaksesi elementin hakemiston luetteloon
Python-luettelo ()
List index () -menetelmä auttaa sinua etsimään annetun elementin ensimmäisen matalimman indeksin. Jos luettelossa on päällekkäisiä elementtejä, palautetaan elementin ensimmäinen hakemisto. Tämä on helpoin ja suoraviivaisin tapa saada indeksi.
Sisäänrakennetun luetteloindeksi () -menetelmän lisäksi voit käyttää myös muita tapoja hakea hakemistoa, kuten silmukata luetteloa, käyttämällä luettelon ymmärtämistä, luetella (), suodatinmenetelmiä.
List index () -menetelmä palauttaa annetun elementin ensimmäisen alimman indeksin.
Syntaksi
list.index(element, start, end)
Parametrit
Parametrit | Kuvaus |
elementti | Elementti, jonka haluat hakea. |
alkaa | Tämä parametri on valinnainen. Voit määrittää alkua hakemiston etsimään elementtiä. Jos sitä ei anneta, oletusarvo on 0. |
loppuun | Tämä parametri on valinnainen. Voit määrittää haettavan elementin loppuhakemiston. Jos sitä ei anneta, sitä pidetään luettelon loppuun asti. |
Palautusarvo
List index () -menetelmä palauttaa annetun elementin indeksin. Jos elementtiä ei ole luettelossa, index () -menetelmä heittää virheen, esimerkiksi ValueError: 'Elementti' ei ole luettelossa.
Esimerkki: Löydetään annetun elementin hakemisto.
Luettelossa my_list = ['A', 'B', 'C', 'D', 'E', 'F'] haluaisimme tietää alkioiden C ja F indeksin.
Alla oleva esimerkki osoittaa, miten hakemisto saadaan.
my_list = ['A', 'B', 'C', 'D', 'E', 'F']print("The index of element C is ", my_list.index('C'))print("The index of element F is ", my_list.index('F'))
Tuotos:
The index of element C is 2The index of element F is 5
Esimerkki: Alun ja loppun käyttäminen hakemistossa ()
Tässä esimerkissä yritetään rajoittaa luettelon hakemista alku- ja loppuhakemistolla.
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('C', 1, 5))print("The index of element F is ", my_list.index('F', 3, 7))#using just the startindexprint("The index of element D is ", my_list.index('D', 1))
Tuotos:
The index of element C is 2The index of element F is 5The index of element D is 3
Esimerkki: Index () -menetelmän testaaminen elementillä, jota ei ole läsnä.
Kun yrität etsiä hakemistoa luettelosta elementille, jota ei ole läsnä, saat virheilmoituksen, kuten alla on esitetty:
my_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']print("The index of element C is ", my_list.index('Z'))
Tuotos:
Traceback (most recent call last):File "display.py", line 3, inprint("The index of element C is ", my_list.index('Z'))ValueError: 'Z' is not in list
For-loop-toiminnon avulla saadaan elementin hakemisto luetteloon
List.index () -menetelmällä olemme nähneet, että se antaa argumentiksi välitetyn elementin indeksin.
Harkitse nyt luetteloa seuraavasti: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']. Nimi 'Guru' esiintyy hakemistossa 3 kertaa, ja haluan kaikki hakemistot nimellä 'Guru'.
Käyttämällä for-loopia meidän pitäisi pystyä saamaan useita hakemistoja alla olevan esimerkin mukaisesti.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']all_indexes = []for i in range(0, len(my_list)) :if my_list[i] == 'Guru' :all_indexes.append(i)print("Originallist ", my_list)print("Indexes for element Guru : ", all_indexes)
Tuotos:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
While-loopin ja list.index (): n käyttäminen
While-silmukan käyttäminen selaa annettua luetteloa saadaksesi kaikki annetun elementin indeksit.
Luettelossa: my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru'], tarvitsemme elementin 'Guru' kaikki hakemistot.
Alla on esimerkki siitä, kuinka kaikki hakemistot voidaan hankkia while-silmukan avulla
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']result = []elementindex = -1while True:try:elementindex = my_list.index('Guru', elementindex+1)result.append(elementindex)except ValueError:breakprint("OriginalList is ", my_list)print("The index for element Guru is ", result)
Tuotos:
OriginalList is ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']The index for element Guru is [0, 3, 6]
Luettelon ymmärtämisen avulla saat elementin hakemiston luetteloon
Kaikkien hakemistojen saamiseksi nopea ja suora tapa on hyödyntää luettelon ymmärtämistä luettelossa.
Luettelomerkinnät ovat Python-toimintoja, joita käytetään luomaan uusia sekvenssejä (kuten luetteloita, sanakirjoja jne.), Ts. Käyttämällä jo luotuja sekvenssejä.
Ne auttavat vähentämään pidempiä silmukoita ja helpottamaan koodisi lukemista ja ylläpitoa.
Seuraava esimerkki osoittaa, miten se tehdään:
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']print("Originallist ", my_list)all_indexes = [a for a in range(len(my_list)) if my_list[a] == 'Guru']print("Indexes for element Guru : ", all_indexes)
Tuotos:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Laskurin avulla saat elementin hakemiston luetteloon
Enumerate () -toiminto on sisäänrakennettu toiminto, joka on saatavana pythonin kanssa. Voit käyttää luetteloa saadaksesi kaikki elementin indeksit luetteloon. Se vie syötteen iteroitavaksi objektiksi (eli silmukoitavaksi objektiksi), ja lähtö on objekti, jolla on laskuri kullekin kohteelle.
Seuraava esimerkki osoittaa, kuinka käyttää luettelossa olevaa luetteloa saadaksesi kaikki kyseisen elementin indeksit.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']print("Originallist ", my_list)print("Indexes for element Guru : ", [i for i, e in enumerate(my_list) if e == 'Guru'])
Tuotos:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Suodattimen avulla saat elementin hakemiston luetteloon
Filter () -menetelmä suodattaa annetun luettelon annetun funktion perusteella. Jokainen luettelon elementti välitetään funktiolle ja tarvittavat elementit suodatetaan funktiossa annetun ehdon perusteella.
Käytä suodatin () -menetelmää saadaksesi luettelon tietyn elementin indeksit.
Seuraava esimerkki näyttää, kuinka suodattimen käyttöä voidaan käyttää luettelossa.
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']print("Originallist ", my_list)all_indexes = list(filter(lambda i: my_list[i] == 'Guru', range(len(my_list))))print("Indexes for element Guru : ", all_indexes)
Tuotos:
Originallist ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
NumPyn avulla saat elementin hakemiston luetteloon
NumPy-kirjastoa käytetään erityisesti matriiseihin. Joten tässä käytetään NumPyä hakemaan tarvitsemamme elementin hakemisto annetusta luettelosta.
NumPyn käyttämiseksi meidän on asennettava ja tuotava se.
Tässä ovat vaiheet samalle:
Vaihe 1) Asenna NumPy
pip install numpy
Vaihe 2) Tuo NumPy-moduuli.
import numpy as np
Vaihe 3) Käytä np.array-tiedostoa muuntaa luettelo taulukoksi
my_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)
Vaihe 4) Hanki haluamasi elementin hakemisto käyttämällänp.where ()
item_index = np.where(np_array == 'Guru')[0]
Lopullinen työkoodi, jossa on lähtö, on seuraava:
import numpy as npmy_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']np_array = np.array(my_list)item_index = np.where(np_array == 'Guru')[0]print("Originallist ", my_list)print("Indexes for element Guru :", item_index)
Tuotos:
Originallist['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0 3 6]
Käytä more_itertools.locate () -toimintoa saadaksesi elementin hakemiston luetteloon
More_itertools.locate () auttaa löytämään elementin hakemistot luettelosta.Tämä moduuli toimii python-version 3.5+ kanssa. Paketti more_itertools on ensin asennettava, jotta sitä voidaan käyttää.
Seuraavassa on ohjeet more_itertoolsin asentamiseen ja käyttämiseen
Vaihe 1) Asenna lisää_itertools käyttämällä pip (python-paketinhallinta). Komento on
pip install more_itertools
Vaihe 2) Kun asennus on valmis, tuo paikannusmoduuli alla olevan kuvan mukaisesti
from more_itertools import locate
Nyt voit käyttää paikannusmoduulia luettelossa alla olevan esimerkin mukaisesti:
from more_itertools import locatemy_list = ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']print("Originallist : ", my_list)print("Indexes for element Guru :", list(locate(my_list, lambda x: x == 'Guru')))
Tuotos:
Originallist : ['Guru', 'Siya', 'Tiya', 'Guru', 'Daksh', 'Riya', 'Guru']Indexes for element Guru : [0, 3, 6]
Yhteenveto:
- List index () -menetelmä auttaa sinua etsimään annetun elementin hakemiston. Tämä on helpoin ja suoraviivaisin tapa saada indeksi.
- List index () -menetelmä palauttaa annetun elementin indeksin.
- Jos elementtiä ei ole luettelossa, index () -menetelmä heittää virheen, esimerkiksi ValueError: 'Elementti' ei ole luettelossa.
- Sisäänrakennetun luettelomenetelmän lisäksi voit myös käyttää muita tapoja hakea hakemistoa, kuten silmukata luetteloa, käyttää luettelon ymmärtämistä, käyttää luetella (), käyttää suodatinta jne.
- Käyttämällä for-loop ja while-loop -toimintoja saadaksesi tietyn elementin useita hakemistoja.
- Kaikkien hakemistojen saamiseksi nopea ja suora tapa on hyödyntää luettelon ymmärtämistä luettelossa.
- Luettelon ymmärtäminen on Python-toimintoa, jota käytetään uusien sekvenssien luomiseen.
- Ne auttavat vähentämään pidempiä silmukoita ja helpottamaan koodisi lukemista ja ylläpitoa.
- Voit käyttää luetteloa saadaksesi kaikki elementin indeksit luetteloon.
- Enumerate () -toiminto on sisäänrakennettu toiminto, joka on saatavana pythonin kanssa. Se vie syötteen iteroitavaksi objektiksi (eli silmukoitavaksi objektiksi), ja lähtö on objekti, jolla on laskuri kullekin kohteelle.
- Filter () -menetelmä suodattaa annetun luettelon annetun funktion perusteella.
- Numpy-kirjastoa käytetään erityisesti matriiseihin. Voit käyttää NumPy-sovellusta saadaksesi luettelossa annetun elementin hakemiston.
- More_itertools.locate () on jälleen yksi python-kirjasto, joka auttaa etsimään annetun luettelon hakemistoja.