Python katılım listesi
Python işlevleri ve meth
Michael Zippo
18.11.2021
Join() y√∂ntemi, liste gibi yinelenebilir bir nesneyi dizeye d√∂nu≈üturmenize olanak tanƒ±r. split() y√∂nteminin tersidir. Yinelenebilir bir nesne olmayan bir deƒüeri bir listeye eklemek için bu y√∂ntemi kullanmayƒ± denerseniz, "TypeError: can katƒ±labilir bir yinelenebilir‚" error.
Bu kƒ±lavuzda, bu hatanƒ±n ne anlama geldiƒüi ve nasƒ±l çalƒ±≈ütƒ±ƒüƒ± hakkƒ±nda konu≈üacaƒüƒ±z. Nasƒ±l çalƒ±≈ütƒ±ƒüƒ±nƒ± √∂ƒürenmenize yardƒ±mcƒ± olmasƒ± için bu listenin bir √∂rneƒüini inceleyeceƒüiz.
TypeError: yalnızca yinelenebilir bir öğeye katılabilir
Hadi hata mesajımıza bir göz atalım: TypeError: yalnızca yinelenebilir bir öğeye katılabilir.
Veri turu bu i≈ülemi desteklemeyen bir deƒüer uzerinde bir i≈ülem gerçekle≈ütirmeye çalƒ±≈ütƒ±ƒüƒ±nƒ±zda TypeErrors ortaya 烱kar. Hata turunden sonraki mesaj bize yinelenebilir bir nesne olmayan bir deƒüeri birle≈ütirmeye çalƒ±≈ütƒ±ƒüƒ±mƒ±zƒ± s√∂yler.
Join() y√∂ntemi yalnƒ±zca liste veya bir tuple. Bunun nedeni, birle≈ütirme y√∂nteminin bir dizideki her √∂ƒüeden geçmesi ve bunlarƒ± bir dizeye eklemesidir. Bir deƒüer yinelenebilir deƒüilse, bu i≈ülem gerçekle≈üemez.
Bu hata, Yok’a e≈üit bir deƒüeri birle≈ütirmeye çalƒ±≈ütƒ±ƒüƒ±nƒ±zda yaygƒ±ndƒ±r.
Örnek Senaryo
Bir peynir satƒ±cƒ±sƒ± için peynir listesi sipari≈ü eden bir program olu≈üturalƒ±m. Bir kullanƒ±cƒ±ya peynirleri artan veya azalan sƒ±rayla isteyip istemediƒüini soracaƒüƒ±z. Ba≈ülamak için bir peynir listesi tanƒ±mlayalƒ±m:
peynirler = ["Parmesan", "İngiliz Cheddar", "Feta", "Roquefort", "Brie"]< br>
Katƒ±lƒ±mcƒ±larƒ±n %81’i, bir eƒüitim kampƒ±na katƒ±ldƒ±ktan sonra teknik i≈ü beklentileri konusunda kendilerini daha guvende hissettiklerini belirtti. Bugun 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ƒ±.
Sƒ±rada, gidiyoruz. kullanƒ±cƒ±ya peynir listesinin g√∂runmesini istediƒüi sƒ±rayƒ± sormak için:
order = input("Peynirlerin artan (ASC) veya azalan (DESC) sırada görunmesini ister misiniz? ")
Bir kullanƒ±cƒ±nƒ±n eklediƒüi yanƒ±tƒ± bir boole deƒüerine çevirmek için bir "if‚" ifadesi kullanacaƒüƒ±z:
Bir kullanƒ±cƒ± "ASC‚" deƒüerini eklerse, liste artan duzende sƒ±ralanƒ±r. Aksi takdirde, liste ters sƒ±rada sƒ±ralanƒ±r.
Daha sonra, Listemizi sƒ±ralamak için sort() y√∂ntemi:
peynirler = cheeses.sort(reverse=reverse)
Daha √∂nce tanƒ±mladƒ±ƒüƒ±mƒ±z "reverse‚" deƒüi≈ükenine ba≈üvuruyoruz. r peynirlerimizin artan veya azalan duzende sƒ±ralanmasƒ±nƒ± istiyoruz.
Şimdi peynirlerimizi sıraladığımıza göre onları bir dizi halinde birleştirip konsola yazdıracağız:< br>
Join() y√∂ntemi, "peynirlerden‚" bir dizeye listeleyin. Her peynir bir bo≈üluk ve virgulle ayrƒ±lacaktƒ±r. Join() y√∂ntemini çaƒüƒ±rmadan √∂nce bu karakterleri kodumuzda tƒ±rnak içine almƒ±≈ütƒ±k.
Programƒ±mƒ±zƒ± çalƒ±≈ütƒ±ralƒ±m:
peynirler artan (ASC) veya azalan (DESC) sırada mı görunecek? ASC
birleştirilebilir
Kodumuz bir hata dönduruyor.
Çözum
Bizim kod, kullanƒ±cƒ±dan peynir listesinin hangi sƒ±rada g√∂runmesi gerektiƒüini sorar. Kodumuz 12. satƒ±rda çalƒ±≈ümayƒ± durdurur. Burasƒ±, peynir listemizi bir dizgede birle≈ütirdiƒüimiz yerdir.
Sorun, "peynir‚" deƒüerinin kodumuzda Yok’a e≈üit olmasƒ±. Bunun nedeni, sƒ±ralamanƒ±n deƒüerini atamƒ±≈ü olmamƒ±zdƒ±r( ) y√∂ntemini yeni bir deƒüi≈ükene d√∂nu≈üturur.
sort() yöntemi bir listeyi yerinde sıralar. Mevcut bir listeyi değiştirir. sort() yöntemi yeni bir liste döndurmez. Bu, şu anlama gelir: cheeses.sort(reverse=reverse) değerini bir değişkene atadığımızda, bu değişkenin değeri Yok olur.
< p>Bu sorunu ç√∂zmek için, peynirlerimizi sƒ±raladƒ±ƒüƒ±mƒ±z kod satƒ±rƒ±ndaki deƒüi≈üken bildirimini kaldƒ±rmamƒ±z gerekiyor:
cheeses.sort(reverse=reverse)
Bu kod peynir listemizi sƒ±ralayacak. "peynir‚" deƒüeri Yok yerine sƒ±ralanan listeye e≈üit olacaktƒ±r. Kodumuzu çalƒ±≈ütƒ±ralƒ±m. ve neler olduƒüunu g√∂run:
"Python.Engineering, hayatƒ±ma en çok ihtiyacƒ±m olduƒüu anda girdi ve hƒ±zlƒ± bir ≈üekilde bir bootcamp ile e≈üle≈ümeme yardƒ±mcƒ± oldu. Mezun olduktan iki ay sonra, hayattaki deƒüerlerim ve hedeflerime uygun hayalimdeki i≈üi buldum!"
Venus, Rockbot’ta Yazƒ±lƒ±m Muhendisi
< p>
Peynirlerin artan (ASC) veya azalan (DESC) sırada görunmesini ister misiniz? ASC
Sıralanan peynirleriniz: Brie, English Cheddar, Feta, Parmesan, Rokfor
Kodumuz ba≈üarƒ±yla sƒ±ralanmƒ±≈ü bir peynir listesi d√∂nduruyor.Peynirlerimizi azalan duzende sƒ±ralamaya çalƒ±≈üalƒ±m:
peynirler artan (ASC) veya azalan (DESC) sırada mı görunecek? DESC
Sıraladığınız peynirler: Rokfor, Parmesan, Feta, İngiliz Cheddar, Brie
< p>Kodumuz, listelerimizi hem artan hem de azalan duzende sıralayabilir.
Sonuç
"TypeError: yalnƒ±zca yinelenebilir bir ≈üekilde katƒ±labilir‚" hatasƒ±, bir dizgeye yinelenemeyen bir deƒüer ekleyin.
Bu, yerle≈üik bir listenin deƒüerini atarsanƒ±z olabilir. sort() gibi bir y√∂ntemi yeni bir deƒüi≈ükene d√∂nu≈üturun ve bu i≈ülemin sonucunu bir dizeye birle≈ütirmeye çalƒ±≈üƒ±n. Bu hatayƒ±, bir dizeye birle≈ütirmeye çalƒ±≈ütƒ±ƒüƒ±nƒ±z deƒüerin bir liste veya bir demet gibi yinelenebilir olduƒüundan emin olarak duzeltebilirsiniz.