listelenecek python demeti

Python işlevleri ve meth

Listeler sayılar kullanılarak dizine eklenir. Bu, bir listeden bir öğeye erişmek istiyorsanız, onun dizin konumuna başvurmanız gerektiği anlamına gelir. Liste dizini değeri olarak bir tanımlama grubu belirtirseniz, “TypeError: liste dizinleri tanımlama grubu değil tamsayı olmalıdır” error.

Bu kılavuzda, bu hatanın ne anlama geldiği ve nerede karşılaşabileceğiniz hakkında konuşuyoruz. Kodunuzda bunun üstesinden nasıl geleceğinizi öğrenebilmeniz için bu hatanın bir örneğini inceliyoruz.




TypeError: liste dizinleri tamsayı olmalıdır, demet değil

Listeler, 0 değeri. Sonraki her değerin, sondan daha büyük bir dizin numarası 1 vardır. Aşağıdaki listeyi göz önünde bulundurun:

coffee_growers = ["Ethiopia", "Kenya", "Rwanda", "Brazil"]

Bu listenin dört değeri vardır. Etiyopya'nın indeks değeri 0, Kenya'nın indeks değeri 1 vb. Bu listedeki öğelere erişmek için şu değerlere başvuruyoruz:

print(coffee_growers[0]) 

Kodumuz “Ethiopia”.

Bir listeden bir öğeye erişmek için bir tanımlama grubu değeri belirtemiyoruz. Bunun nedeni, tuplerin bir listedeki herhangi bir dizin değerine karşılık gelmemesidir.

“TypeError: liste dizinleri şu şekilde olmalıdır: tamsayılar, demet değil” hata en çok, listedeki her değer arasında virgül ayırıcının eksik olduğu listelerde görülür.




Örnek Senaryo

Bilgileri izleyen bir program oluşturacağız. bazı İngiltere kuşları hakkında. Bir kuş listesi tanımlayarak başlayın:

Katılımcıların %81'i bir eğitim kampına katıldıktan sonra teknik iş beklentileri konusunda daha emin hissettiklerini belirtti. Bugün bir eğitim kampı ile eşleştirin.

Ortalama bir eğitim kampı mezunu, bir eğitim kampına başlamaktan ilk işini bulmaya kadar, kariyer geçişinde altı aydan daha az zaman harcadı.

Her listedeki ilk öğe bir kuşun adıdır; ikinci öğe bir kuşun ailesidir; üçüncü öğe, o kuşun Birleşik Krallık koruma statüsüdür. Ardından, bir kullanıcıdan listemize bir kayıt eklemesini istiyoruz. Bunu input() yöntemini kullanarak yapıyoruz:

name = input("Kuşun adını girin: ") family = input("Kuşun ailesini girin: ") protection_status = input("Kuşun koruma durumunu girin: ") 

Artık bu verileri topladığımıza göre, kuşlarla ilgili bilgileri kuş listemize ekleyebiliriz. Bunu append() yöntemini kullanarak yapıyoruz:

birds. append([name, family, protection_status]) print(birds)

Kodumuz, eklemek istediğimiz kayıt listeye eklendikten sonra yeni kuş listemizi yazdırır. Kodumuzu çalıştıralım ve ne olduğunu görelim:

Geri izleme (en son çağrı): Dosya "main.py", satır 2,  ["Barn Owl", "Owl", "Green"] TypeError: liste indeksleri tamsayı veya dilim olmalı, demet değil

Kodumuz bir hata döndürüyor. Bir kuş hakkında bilgi girmemiz istenmeden önce hatamızın oluştuğuna dikkat edin. Yığın izlememize bakarsak, sorunun kodumuzun ikinci satırında olduğunu görürüz, bu liste bildirimimizin içindedir.





Çözüm

Kodumuzdaki sorun şu ki, listemizdeki değerler arasına virgül koymayı unutmuşuz. listemiz ikinci kaydı birinci kayıt için bir dizin değeri olarak yorumlar:

birds = [ [ "Peçeli Baykuş", "Baykuş", "Yeşil"] ["Siyah sumru", "Martılar ve kırlangıçlar", "Yeşil"] ]

Python bu kodu şu şekilde okur:

["Peçeli Baykuş", "Baykuş", "Yeşil"]["Siyah sumru", "Martılar and terns", "Green"]

İkinci liste birinci liste için bir dizin değeri olamaz. Dizin değerleri sayı olmalıdır. Kodumuz bir tanımlama grubu belirttiğimizi söylüyor çünkü ikinci liste küçültülür, bu nedenle birden çok değere sahiptir.

Çözmek için Bu problemde listemizdeki listeleri virgülle ayırmalıyız:

birds = [ ["Peçeli Baykuş", "Baykuş", "Yeşil"], ["Siyah sumru", "Martılar ve sumrular", "Yeşil"] ]

Kodumuzu şu komutlarla çalıştırmayı deneyin: kuşlar listesindeki virgül:

Kuşun adını girin: Pied Wagtail Kuşun ailesini girin : Pipetler ve kuyruksallayanlar Kuşun koruma statüsünü girin: Yeşil [['Peçeli Baykuş',''Baykuş',''Yeşil'], ['Siyah sumru', 'Martılar ve kırlangıçlar', 'Yeşil'], ['Ala Kuyruğu ', 'Pipits and wagtails', 'Green']]

Kodumuz başarıyla yürütülüyor. İlk olarak, bir kuş hakkında bilgi girmemiz isteniyor. Kodumuz daha sonra bu bilgiyi kuş listemize ekler. Son olarak, kodumuz kuşların listesini yazdırır. Yeni kaydımızın listenin sonuna eklendiğini görüyoruz.




Sonuç

“TypeError: liste indeksleri tamsayı olmalı, demet değil” listenin sonunda bir dizin değeri olarak bir tanımlama grubu belirttiğinizde hata oluşur. Bu sorunu çözmek için, bir liste listesindeki tüm listelerin virgül kullanılarak ayrıldığından emin olun.


Artık bu yaygın Python hatasını profesyonel bir geliştirici gibi çözmeye hazırsınız!





listelenecek python demeti: StackOverflow Questions

Tutorials