Python Listesi Anlamalarını Kullanma (Ve Ne Zaman Kullanılmayacağını)

  • Peter Holmes
  • 0
  • 4922
  • 1153
reklâm

Python'un listesinin anlaşıldığını duymuş olabilirsiniz. Belki de gerçekten anlamadan kullandığınız bir şeydir. Şimdi öğrenme zamanı, Python'daki liste kavrama hakkında bilmeniz gereken her şeyi kapsadığı için.

Başlamadan önce, Python'da dizilerin ve listelerin nasıl çalıştığı konusunda kendinizi yenilemeye değer. Python'da Diziler ve Listeler Nasıl Çalışır? Python'da Diziler ve Listeler Nasıl Çalışır? Diziler ve listeler programlamada en yararlı veri yapılarındandır. tam potansiyelleri için. ve Python sözlükleri nasıl kullanılır? Python Sözlüğü: Nasıl Daha İyi Kod Yazmak İçin Kullanabilirsiniz Python Sözlüğü: Nasıl Daha İyi Kod Yazmak İçin Kullanabilirsiniz? Python sözlüğünü sıralanmamış anahtar-değer çiftleri kümesi olarak düşünün. Bu makalede, onlarla çalışmanızı ve Python kodunuzu geliştirmek için onları kullanmanızı açıklıyoruz. .

Python Listesi Kavramı Nedir??

Liste anlama kulağa karmaşık geliyor ama gerçekten değil. Python'da, bazı kriterleri temel alan bir listeyi filtrelemek veya hassaslaştırmak için hızlı bir yoldur.

Birkaç kod satırı yazmak zorunda kalmanızı önler (özellikle zaten bir döngü içindeyseniz) ve kodunuzun okunabilirliğini düzenli tutar.

Ancak, liste kavrama her zaman cevap olmadığından dikkatli olun. Taşınması ve okunması zor olan karmaşık anlaşılırlıklar yazmak kolaydır. Bazen daha fazla kod yazmak, özellikle okunabilirliğe yardımcı olması durumunda daha iyidir. Basit görevlere sadık kalın ve kodu tek bir sorumluluk altında tutun.

Python'da Liste Anlamalarını Kullanma

Not: Bu örneklerin tümü Python 3.6'yı kullanır. Python 3 ve Python 2 arasındaki farklardan emin değilseniz, Python SSS bölümümüzü okuduğunuzdan emin olun. Python Programlama Hakkında En Sık Sorulan Sorular Python Programlama Hakkında En Sık Sorulan Sorular Bu makalede, size yardımcı olacağız Yeni başlayanlar için Python hakkında bilmeniz gereken her şey. , bu soruyu ve daha fazlasını ele aldığımız yer.

Bir diziyi kopyalayan ve dizideki her harfi büyük harfe dönüştüren bu kod bitini göz önünde bulundurun. Bunu, dizideki her öğe arasında döngü yaparak yapar:

letters = ['a', 'b', 'c', 'd'] print (harfler) upper_letters = [] harfler içindeki harfler için result: result = letter.upper () upper_letters.append (result) print (upper_letters)

Şimdi burada aynı mantık var, basit bir Python listesi anlama kullanarak tek bir kod satırında yapılması dışında:

letters = ['a', 'b', 'c', 'd'] print (harfler) upper_letters = [x.upper () harfleri x için] print (upper_letters) 

Gördüğünüz gibi, sonuç tamamen aynı, ancak süreç liste anlamayı gerektirmeyen çok daha fazla kod içeriyor.

Bu basit örneği yıkalım..

Bu örnek denilen bir liste oluşturur. harfler. Bu küçük harfleri saklar. “bir”, “b”, “c”, ve “d”. Tüm bu liste öğelerinin büyük harf olmasını istediğinizi varsayalım. Eh, liste anlama olmadan, sonucu saklamak için yeni bir liste oluşturmanız gerekir ( upper_letters), içindeki her öğe üzerinde döngü harfler Her harfi listele, dönüştür (ve sakla) sonuç-isteğe bağlı ancak iyi uygulama) ve büyük harfleri yeni listeye ekleyin. Ne iş!

Buradaki liste kavrama, döngü alternatifine neredeyse tamamen eşdeğerdir. Etkili diyor “Harfler listesindeki her harf için bunları büyük harfe dönüştürün ve sonucu yeni bir liste olarak döndürün.”

Liste anlama yalnızca listelerde çalışabilir ve yeni bir liste döndürmelidir. Daha derine kazalım.

Listede anlama için üç bölüm vardır (aşağıdaki üçüncü bölümü ele alacağız). Liste anlamaların köşeli parantezlerle başlaması ve bitmesi gerekir ([ ve ]). Bu şekilde tasarlandı ve Python'un bir liste ile çalışacağınızı bilmesini sağlar.

Köşeli parantezlerin içinde sonuçla başlamanız gerekir. Her liste elemanı ile yapmak istediğiniz şey budur.

Yukarıdaki örnekte, aşağıdaki kod her bir öğeyi dönüştürür (değişken adına göre başvurulur) x) kullanarak büyük harfe üst() Python çekirdek kütüphanesinin bir parçası olan yöntem:

[x.upper () # çalışmayacak, bu noktadaki kavrayışın sadece yarısı

Sonra, Python'a hangi listenin üzerinde çalışacağını söylemeniz ve her bir öğeyi bir değişkene atamanız gerekir. Bu kesinlikle uzun sargılı örnekteki for döngüsü ile aynıdır:

harflerle x için

Döngü listeye her geçtiğinde, değeri x Geçerli elemanın ne olduğu ile değişecektir. Olarak başlayacak “bir”, ve sonra “b”, ve bunun gibi.

Hepsini bir araya getirirseniz (ve onu bir değişkene atadıysanız, upper_letters), yapılacaksınız:

upper_letters = [x.upper () harflerle x için]

şimdi, upper_letters başlangıçta büyük harflerin bir listesini içerecektir. “bir”, ve sonra “B” ve bunun gibi.

Python'da Listenin Anlaşılmasının Üçüncü Bölümü

Yukarıda da belirttiğimiz gibi, anlama kavramının üçüncü bir kısmı var.

Yukarıdaki iki adımı tamamladığınızda isteğe bağlı bir koşul ekleyebilirsiniz. Bu bir kullanma gibi Eğer söylenecek ifade “bu eski listeye dayanarak beni yeni bir liste yap, ancak yalnızca kriterlerime uyan öğeleri ekle”.

İşte göründüğü gibi:

yaş = [1, 34, 5, 7, 3, 57, 356] print (yaş) old_ages = [x> 10] yazdırıldığında x yaş için x (old_ages)

Bu örnekte yeni bir liste kullanılıyor. yaşlar. old_ages liste bir anlama anlayışı kullanılarak toplanır. Eğer Sondaki koşul, yalnızca kriterleri karşılayan liste öğelerinin yeni listeye eklendiği anlamına gelir. Bu örnekte, on yaşından büyük yaşlara izin verilir.

Python Listesi Anlamalarını Ne Zaman Kullanmayacağınız

Liste anlama, bir kez kapanınca şaşırtıcı, ancak her durumda işe yaramaz. Birden fazla duruma ihtiyaç duyduğunuzda muhtemelen kullanmamalısınız:

old_ages = [x> 10 ve x ise, x yaşlarda x < 100 and x is not None]

Bu kod işe yarıyor ama uzun ve kafa karıştırıcı olmaya başladı. Benzer şekilde, basit bir işlev çağrısından başka bir şey çalışmayabilir. Bu örnekte bir hata alırsınız:

letters = ['a', 'b', 'c', 'd', 2] print (letters) upper_letters = [x.upper () harflerle x için] print (upper_letters)

Bu tamamen geçerli bir koddur, ancak bir rakamı büyük harf kullanamadığınız için çalışmaz. Bir istisna işleme uygulayabileceğinizden, daha uzun döngü gerçekten tercih edildiğinde bu bir durumdur:

letters = ['a', 'b', 'c', 'd', 1] print (harfler) upper_letters = [] harfler içindeki harfler için: try: result = letter.upper () upper_letters.append (result) hariç AttributeError: pass # yazdırma hiçbir şey yapmaz (upper_letters)

Kullanmak için Python Listesi Anlayışlarını Koymaya Başlayın

Artık Python'da liste kavrayışının ne kadar kolay olduğunu bildiğinize göre, kullanmamak için hiçbir sebep yok. Sadece basit tutmayı unutmayın ve okunabilirliği her şeyden önce göz önünde bulundurun.

Belki de Python ile bir Arduino'yu kontrol edeceksiniz Python ile bir Arduino'yu Programlama ve Kontrol Etme Python ile bir Arduino'yu Programlama ve Kontrol Etme Ne yazık ki Python'da bir Arduino'yu doğrudan programlamak imkansız, ancak bir Python kullanarak USB üzerinden kontrol edebilirsiniz programı. İşte nasıl. , peki ya DIY Python ağ güvenlik kamerası hakkında Ahududu Pi ile DIY Pan ve Tilt Ağ Güvenlik Kamerası Ahududu Pi ile DIY Pan ve Tilt Ağ Güvenlik Kamerası ile Ahududu Pi ile uzaktan izlenebilir pan ve tilt güvenlik kamerası yapmayı öğrenin. Bu proje, sadece en basit parçalarla bir sabah tamamlanabilir. ?




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.