Python len() Funktio: Kuinka löytää merkkijonon pituus

⚡ Älykäs yhteenveto

Python len() on sisäänrakennettu funktio, joka palauttaa objektin alkioiden lukumäärän, kuten merkkijonon merkkien määrän tai listan, tuplen, sanakirjan tai joukon elementtien määrän.

  • 🔢 Syntaksi: len(object) ottaa yhden argumentin ja palauttaa kokonaisluvun, joka on sen sisältämien elementtien kokonaismäärä.
  • 🔠 Jouset: Merkkijonon tapauksessa len() laskee kaikki merkit, mukaan lukien välilyönnit, numerot ja välimerkit.
  • 📦 kokoelmat: len() mittaa listojen, tuplejen, sanakirjojen, joukkojen ja range-objektien kokoa samalla tavalla.
  • ⚙️ Suorituskyky: len() suoritetaan vakioajassa O(1), koska Python tallentaa jokaisen objektin pituuden attribuuttina.
  • 🚫 Tyyppivirhe: len()-funktion kutsuminen kokonaisluvulla tai None-tyypillä aiheuttaa TypeError-virheen, koska näillä tyypeillä ei ole pituutta.
  • 🤖 AI-apu: Tekoälykoodausavustajat luovat len()-tarkistuksia, ja koneoppimisputket käyttävät len()-funktiota sekvenssien täyttämiseen ja eräajoon.

Python len()-funktio

Mikä on Python len()-funktio?

len () funktio on sisäänrakennettu funktio PythonVoit käyttää len()-funktiota tietyn merkkijonon, taulukon, listan, tuplen, sanakirjan ja muiden objektien pituuden selvittämiseen. Koska elementtien lukumäärä tallennetaan objektiin eikä lasketa uudelleen joka kerta, len() auttaa tarkistamaan koon nopeasti ja optimoimaan ohjelmasi suorituskyvyn.

Syntaksi Python len()-funktio

Python len()-funktio käyttää seuraavaa syntaksia:

len(value)

parametrit

arvo: Annettu objekti – kuten merkkijono, lista, tuple, sanakirja tai joukko – jonka pituuden haluat mitata.

Palautusarvo

len() palauttaa kokonaisluvun eli merkkijonon merkkien määrän tai taulukon, listan tai kokoelman elementtien määrän. Paluuarvon tarkka merkitys riippuu sille välitetyn objektin tyypistä:

  • Jouset: len() palauttaa merkkijonon merkkien määrän, mukaan lukien välimerkit, välilyönnit ja kaikki erikoismerkit.
  • Tyhjä: Tyhjä merkkijono tai tyhjä kokoelma palauttaa arvon 0, koska se sisältää nolla elementtiä.
  • kokoelmat: Sisäänrakennettu len()-funktio palauttaa kokoelmaan tallennettujen elementtien määrän.
  • Tyyppivirhe: len() riippuu sille annetun objektin tyypistä. Pituuttamattoman arvon, kuten kokonaisluvun, välittäminen aiheuttaa TypeError-virheen.
  • Sanakirja: Sanakirjassa jokainen avain-arvo-pari lasketaan yhdeksi yksiköksi, joten len() palauttaa avainten lukumäärän.

Esimerkkejä Python len()-funktio

Seuraavat esimerkit näyttävät, miten len()-funktiota käytetään eri pituuksien löytämiseen Python olioita, mukaan lukien merkkijono, lista, tuple, sanakirja ja taulukko.

Esimerkki 1: Merkkijonon pituuden selvittäminen

# testing len() 
str1 = "Welcome to  Guru99 Python Tutorials"
print("The length of the string  is :", len(str1))

lähtö:

The length of the string  is : 35

Esimerkki 2: Listan pituuden selvittäminen

# to find the length of the list

list1 = ["Tim","Charlie","Tiffany","Robert"]

print("The length of the list is", len(list1))

lähtö:

The length of the list is 4

Esimerkki 3: Kuinka löytää tuplen pituus

# to find the length of the tuple

Tup = ('Jan','feb','march')

print("The length of the tuple is", len(Tup))

lähtö:

The length of the tuple is 3

Esimerkki 4: Sanakirjan pituuden selvittäminen

# to find the length of the Dictionary

Dict = {'Tim': 18,'Charlie':12,'Tiffany':22,'Robert':25}

print("The length of the Dictionary is", len(Dict))

lähtö:

The length of the Dictionary is 4

Esimerkki 5: Taulukon pituuden selvittäminen

# to find the length of the array

arr1 = ['Tim','Charlie','Tiffany','Robert']

print("The length of the Array is", len(arr1))

lähtö:

The length of the Array is 4

Kuinka löytää merkkijonon pituus ilman len()-funktiota Python

len()-funktio on nopein ja luettavin tapa mitata merkkijonoa, mutta voit laskea merkkejä myös manuaalisesti. Tämä on yleinen koodaushaastatteluharjoitus, ja jokainen metodi yksinkertaisesti käy läpi merkkijonon samalla kasvattaen laskuria.

Yleisin lähestymistapa käyttää for-silmukkaa:

# length of a string without len()
mystr = "Guru99"
count = 0
for char in mystr:
    count += 1
print("The length is", count)

lähtö:

The length is 6

Lyhyempi vaihtoehto käyttää sum()-funktiota generaattorilausekkeen kanssa, lisäämällä 1 jokaista merkkijonon merkkiä kohden:

mystr = "Guru99"
length = sum(1 for char in mystr)
print("The length is", length)

lähtö:

The length is 6

Muita tapoja laskea merkkejä ilman len()-funktiota ovat seuraavat:

  • While-silmukka, joka viipaloi merkkijonoa, kunnes se tyhjenee, ja kasvattaa laskuria jokaisella läpimenolla.
  • enumerate()-funktio, joka tracks jokaisen merkin indeksin sitä iteroidessa.
  • Rekursiivinen funktio, joka palauttaa luvun 1 sekä jäljellä olevan osamerkkijonon pituuden.

Nämä manuaaliset metodit ovat hitaampia kuin sisäänrakennettu len(), joten varaa ne oppimiseen tai haastatteluharjoitteluun. Arkipäiväisessä koodissa len() on edelleen nopein ja selkein vaihtoehto.

Miten Python Toimiiko len()-funktio sisäisesti?

Len()-funktion toiminnan ymmärtäminen selittää, miksi se on niin nopea. Kun kutsut len()-funktiota objektille, Python ei skannaa jokaista elementtiä yksi kerrallaan. Sen sijaan se kutsuu oliokohtaista __len__()-metodia, mikä tarkoittaa, että lauseke len(x) on yhtäpitävä funktion x.__len__() kanssa.

Sisäänrakennetut säilöt, kuten merkkijonot, listat, tuplet, sanakirjat ja joukot, tallentavat oman kokonsa attribuuttina. Joka kerta, kun lisäät tai poistat elementin, Python päivittää tämän tallennetun määrän. Kun len()-funktiota kutsutaan, se yksinkertaisesti lukee kyseisen esitallennetun arvon ja palauttaa sen.

Koska pituus on jo tiedossa, len() suoritetaan vakioajassa, joka kirjoitetaan muodossa O(1). Se vie saman ajan riippumatta siitä, sisältääkö objekti viisi alkiota vai viisi miljoonaa. Voit myös lisätä len()-tuen omiin luokkiisi määrittelemällä __len__()-metodin, joka palauttaa kokonaisluvun:

class Team:
    def __len__(self):
        return 11

squad = Team()
print(len(squad))

lähtö:

11

Tämä rakenne on syy siihen, miksi len() käyttäytyy johdonmukaisesti kaikkien sisäänrakennettujen tyyppien sekä kaikkien __len__()-metodin toteuttavien mukautettujen objektien välillä.

» Lisätietoja Python Merkkijonomenetelmät

UKK

Kyllä. len() laskee merkkijonon jokaisen merkin, mukaan lukien välilyönnit, sarkaimet, numerot ja välimerkit. Esimerkiksi len(“Guru 99!”) palauttaa 8, koska välilyönti ja huutomerkki lasketaan kumpikin yhdeksi merkiksi.

len() palauttaa arvon 0, jos merkkijono on tyhjä, koska se ei sisällä merkkejä. Len()-funktio ei ole nollaindeksillä varustettu; se laskee elementit alkaen yhdestä, joten len(“a”) palauttaa arvon 1 ja len(“”) palauttaa arvon 0.

Kokonaisluvut eivät tallenna useita alkioita, joten niillä ei ole pituutta. Funktion len(123) kutsuminen aiheuttaa virheen ”TypeError: tyypin 'int' objektilla ei ole len()”. Muunna luku ensin funktiolla len(str(123)), kun haluat laskea sen numerot.

Kyllä. Sanakirjan tapauksessa len() palauttaa avain-arvo-parien lukumäärän laskemalla jokaisen parin kerran. Joukon tapauksessa len() palauttaa yksilöllisten elementtien lukumäärän, koska joukko hylkää automaattisesti kaksoisarvot.

len() palauttaa merkkijonon Unicode-koodipisteiden määrän, joten useimmat aksenttiset kirjaimet ja symbolit lasketaan yhdeksi. Jotkin emojit ja yhdistetyt merkit kuitenkin käyttävät useita koodipisteitä, joten len() voi raportoida niille useamman kuin yhden.

Anna len avaimena max()-funktiolle: max(words, key=len) palauttaa listan pisimmän merkkijonon. Samoin min(words, key=len) palauttaa lyhimmän. Tämä välttää manuaalisen silmukan kirjoittamisen pituuksien vertailua varten.

Koneoppimisputket käyttävät len()-funktiota jatkuvasti – tarkistaakseen tietojoukkojen koon, varmistaakseen, että ominaisuudet ja otsikot vastaavat toisiaan, ja mitatakseen sekvenssien pituuksia. Mallit usein täyttävät tai katkaisevat tekstin yhtä suureksi len()-arvoksi, jotta dataerillä on sama muoto.

Kyllä. GitHub Copilot täydentää len()-tarkistukset ja laskee silmukat automaattisesti lyhyen, tavoitettasi kuvaavan kommentin perusteella. Agenttien tekoälyavustajat menevät pidemmälle kirjoittamalla pituusvalidointilogiikan, lisäämällä suojauslausekkeita TypeError-virheitä vastaan ​​ja suorittamalla testisi puolestasi.

Tiivistä tämä viesti seuraavasti: