Python düzleştirme listesi

Python işlevleri ve meth

Listeyi düzleştirme, bir boyutu listeden kaldırma sürecini ifade eder. Boyut, listedeki bir öğeyi bulmak için gereken ek bir koordinatı ifade eder. Liste kavrayışı, iç içe geçmiş bir for döngüsü veya itertools.chain() yöntemini kullanarak bir Python listesini düzleştirebilirsiniz. 

Bir Python listesi birden çok boyut içerebilir. Bu, listeler içinde bir listeniz olduğu anlamına gelir. Bazen ‘iç içe listeler” tekrar normal bir listeye dönüştürülebilir.

Bu, bir listedeki tüm değerleri tek bir listeye taşıyabileceğiniz anlamına gelir. Listelerin listesini listeye dönüştürmeye “Listeyi düzleştirme”




Python Listeyi Düzleştirme

Python listesini düzleştirmenin üç yolu vardır:

  • Liste kavrayışını kullanma.
  • İç içe geçmiş bir for döngüsü kullanma.
  • itertools.chain() yöntemini kullanma.

Bu kılavuzda, bir liste kavrama, bir for döngüsü ve itertools.chain() yöntemini kullanarak bir listenin nasıl düzleştirileceği hakkında konuşuyoruz. Listeleri kendi programlarınızda düzleştirmeye başlayabilmeniz için iki örnek üzerinden geçiyoruz.




Python: Liste Anlamayı Kullanarak Listeyi Düzleştirme

Bir Python liste kavrayışı, mevcut bir listenin içeriğine dayalı bir liste tanımlar. Kavrama içindeki koşulları veya değişiklikleri belirterek yeni listenize giren her öğeyi özelleştirebilirsiniz.

Anlamalar, bir liste üzerinde yineleme yapmak ve yeni bir liste oluşturmak için bir for döngüsü kullanmak için sözdizimsel şekerdir. Bu, bir for döngüsüyle aynı temel şekilde çalıştıkları, ancak farklı sözdizimi kullandıkları anlamına gelir.

Listeyi kavramanın sözdizimi şöyledir:

Katılımcıların %81'i kendilerini daha güvende hissettiklerini belirtti. bir eğitim kampına katıldıktan sonra teknik iş beklentileri hakkında. 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ı.

Bu kavrayış, her sayıyı çoğaltır. “sayılarımız” 2'ye göre listele.

Listeyi Düzleştir: Liste Anlama Örneği

Bir restoranda bulunan farklı sandviç dolguları içeren bir listemiz var. Şu anda liste listemiz şöyle görünüyor:

foods = [ ["Domates ve Salatalık", "Humus , Pancar ve Marul"], ["Peynir", "Yumurta"], ["Ham", "Pastırma", "Tavuk Klübü", "Ton Balığı"] ]

İlk liste vegan sandviç dolguları içerir; ikinci liste vejetaryen sandviç dolguları içerir; üçüncü liste et içeren tüm sandviç dolgularını içerir.


Bu listeyi tek bir besin listesine dönüştürmek istiyoruz. İki boyutlu bir listeyle çalışmak iki boyutlu bir liste ile çalışmak daha kolay. Birden fazla boyuta gerek yok. İkinci boyutu listemizden çıkarmak için bir liste kavrayışı kullanabiliriz:

new_foods = [ alt listedeki yiyecekler alt listedeki yiyecekler için yiyecekler] print(new_foods)

Bu liste kavrayışı, “gıdalar” içindeki her listeyi yineler Python değişkeni. Her değer daha sonra bir ana listeye eklenir. Listemiz oluşturulduktan sonra konsola yazdırılır.

Kodumuzu yazalım ve ne olduğunu görelim:

['Domates ve Salatalık', 'Humus, Pancar ve Marul ce', 'Peynir', 'Yumurta', 'Ham', 'Bacon', 'Chicken Club', 'Tuna']

Liste listemiz başarıyla bir daireye dönüştürüldü liste. Tüm içerikler artık üç yerine tek bir listede görünüyor.

Aynı sonucu iç içe bir Python for loop kullanarak da elde ediyoruz. “Döngü için yuvalanmış” "for döngüsü içinde bir for döngüsü" demenin başka bir yoludur. Liste kavrayışımız, aşağıdaki for döngüsünü temsil etmenin başka bir yoludur:

new_foods = [] gıdalardaki alt liste için: alt listedeki yiyecekler için: new_foods.append(food) print(new_foods)

Kodumuz, orijinal liste listesindeki her listedeki her liste öğesini yinelemek için iki for döngüsü kullanır. Kodumuzu çalıştıralım:

['Domates ve Salatalık', 'Humus, Pancar ve Marul' , 'Peynir', 'Yumurta', 'Ham', 'Bacon', 'Chicken Club', 'Tuna']

Programımız liste anlama ile aynı sonucu verir. Çoğu durumda, bir liste kavrayışı, bir for döngüsünden daha iyi bir çözümdür. Liste anlamaları daha kısadır ve bu durumda okunması iç içe bir for döngüsünden daha kolaydır.





Python: Itertools Kullanarak Listeyi Düzleştir

Itertools, Python standart kitaplığındaki bir modüldür.Modül, yinelenebilir ile çalışmayı kolaylaştıran bir dizi yöntem sağlar. nesneler ve jeneratörler.

Amacımız için sadece chain() yöntemine başvuruyoruz. Bu yöntem bir liste listesini kabul eder ve düzleştirilmiş bir liste döndürür.

< p>Bir Python import deyimi kullanarak itertools modülünü kodumuza aktararak başlayın:

itertools'u içe aktar

Sonra, listelerin listesini tanımlayın ve listeyi düzleştirmek için chain() yöntemini kullanın:

gıdalar = [ ["Domates ve Salatalık", "Humus, Pancar ve Marul"], [" Peynir", "Yumurta"], ["Jambon", "Pastırma", "Şık ken Club", "Tuna"] ] new_foods = itertools.chain(*foods)

Kodumuzda, listemizi açmak için * sembolünü kullanırız. Bu, listemizi chain() yöntemiyle ayrıştırılabilen işlev bağımsız değişkenlerine dönüştürür. 

chain() yöntemi bir itertools.chain nesnesi döndürür. Düzleştirilmiş listemizi görmek için bu nesneyi bir listeye dönüştürmemiz gerekiyor. Bunu list() yöntemini kullanarak yapıyoruz:

print(list(new_foods) ))

Kodumuzu çalıştıralım:

[' Domates ve Salatalık', 'Humus, Pancar ve Marul', 'Peynir', 'Yumurta', 'Jambon', 'Pastırma', 'Tavuk Kulübü', 'Ton Balığı']

Kodumuz listemizi düzleştirdi. 

"Python.Engineering hayatıma en 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 hedeflerim ile uyumlu hayalimdeki işi buldum!"

p>

Venus, Rockbot'ta Yazılım Mühendisi

itertools bir listeyi düzleştirmenin etkili bir yolu olsa da, kullandığımız son iki yaklaşımdan daha gelişmiştir. tartıştık.

Bunun nedeni, yeni bir bağımlılık getiren kodunuza itertools'u içe aktarmanız gerektiğidir. Dahası, chain() yöntemi, anlaşılması zor olabilen paketi açmayı içerir. 




Sonuç

Bir Python listesini kullanarak düzleştirebilirsiniz. bir liste kavrayışı, iç içe geçmiş bir for döngüsü ve itertools.chain() yöntemi. Liste anlama, en “Pythonic” yöntemidir ve bu nedenle çoğu durumda tercih edilir.


İç içe geçmiş döngüler etkili olsa da, liste kavrayışından daha fazla kod satırı tüketirler. itertools.chain() yöntemi benzer şekilde etkilidir ancak yeni başlayanlar için anlaması zor olabilir.

Python bir listeyi düzleştirmek için ihtiyacınız olan tüm araçları sağladığında, genellikle yeni bir kitaplığı içe aktarmaya gerek yoktur — itertools —.

Python hakkında daha fazla bilgi edinmek ister misiniz? Eksiksiz Python Nasıl Öğrenilir kılavuzumuza göz atın. Uzman öğrenme ipuçlarını ve öğrenebileceğiniz en iyi kursların ve kitapların bir listesini bulacaksınız. .





Python düzleştirme listesi: StackOverflow Questions

Tutorials