Python katılım listesi

Python işlevleri ve meth

Join() yöntemi, liste gibi yinelenebilir bir nesneyi dizeye dönüştürmenize 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 türü bu işlemi desteklemeyen bir değer üzerinde bir işlem gerçekleştirmeye çalıştığınızda TypeErrors ortaya çıkar. Hata türünden 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 güvende 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ı.

Sırada, gidiyoruz. kullanıcıya peynir listesinin görünmesini istediği sırayı sormak için:


order = input("Peynirlerin artan (ASC) veya azalan (DESC) sırada görünmesini ister misiniz? ")

Bir kullanıcının eklediği yanıtı bir boole değerine çevirmek için bir “if” ifadesi kullanacağız:

if order == "ASC": reverse = False else: reverse = True 

Bir kullanıcı “ASC” değerini eklerse, liste artan düzende 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 düzende sıralanmasını istiyoruz.

Şimdi peynirlerimizi sıraladığımıza göre onları bir dizi halinde birleştirip konsola yazdıracağız:< br>

new_cheeses = ", ".join(peynirler) print("Sıralanan peynirleriniz: " + new_cheeses) 

Join() yöntemi, “peynirlerden” bir dizeye listeleyin. Her peynir bir boşluk ve virgülle 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örünecek? ASC

Peynirlerin artan (ASC) veya azalan (DESC) sırada görünmesini ister misiniz? ASC Geri İzleme (en son arama son): Dosya "main.py", satır 12,  new_cheeses = " ".join(peynirler) TypeError: yalnızca yinelenebilir bir 
birleştirilebilir

Kodumuz bir hata döndürüyor.




Çözüm

Bizim kod, kullanıcıdan peynir listesinin hangi sırada görünmesi 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önüştürür.

sort() yöntemi bir listeyi yerinde sıralar. Mevcut bir listeyi değiştirir. sort() yöntemi yeni bir liste döndürmez. 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örün:

"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 Mühendisi

< p>Peynirlerin artan (ASC) veya azalan (DESC) sırada görünmesini ister misiniz? ASC

Sıralanan peynirleriniz: Brie, English Cheddar, Feta, Parmesan, Rokfor

Kodumuz başarıyla sıralanmış bir peynir listesi döndürüyor.Peynirlerimizi azalan düzende sıralamaya çalışalım:

peynirler artan (ASC) veya azalan (DESC) sırada mı görünecek? DESC

Sıraladığınız peynirler: Rokfor, Parmesan, Feta, İngiliz Cheddar, Brie

< p>Kodumuz, listelerimizi hem artan hem de azalan düzende 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önüştürün 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 düzeltebilirsiniz.


Artık kodunuzdaki bu hatayı bir profesyonel gibi çözmeye hazırsınız!





Python katılım listesi: StackOverflow Questions

Tutorials