1. Python'da Lambda İşlevleri Nasıl Kullanılır

Alan Shovic, John Shovic tarafından

Python, lambda işlevleri olarak da adlandırılan anonim işlevler kavramını destekler. Adın anonim kısmı, işlevin bir adı olması gerekmediği gerçeğine dayanır (ancak isterseniz bir adı olabilir). Lambda kısmı, onları Python'da tanımlamak için lambda anahtar kelimesinin kullanımına dayanır. Lambda ayrıca Yunan alfabesinin 11. harfidir.

Ancak adın Python'da kullanılmasının ana nedeni, lambda teriminin hesaptaki anonim fonksiyonları tanımlamak için kullanılmasıdır. Şimdi bunu açıklığa kavuştuğumuza göre, bu bilgileri ofis partilerinde büyüleyici bir konuşma başlatmak için kullanabilirsiniz.

Python ile bir lambda ifadesini (adsız) tanımlamak için minimal sözdizimi:

Lambda argümanları: ifade

Kullanırken:

  • Bağımsız değişkenleri ifadeye iletilen verilerle değiştirin. İfadeyi, lambda'nın ne döndürmesini istediğinizi tanımlayan bir ifadeyle (formül) değiştirin.

Bu sözdizimini kullanmanın oldukça yaygın bir örneği, bazı adların büyük harflerle, bazılarının da küçük harflerle başladığı, şu adlarda olduğu gibi metin dizelerini sıralamaya çalıştığınız zamandır:

Adams, Ma, diMeola, Zandusky

Adları bir listeye koymak için aşağıdaki kodu yazdığınızı varsayalım, sıralayın ve listeyi şu şekilde yazdırın:

names = ['Adams', 'Ma', 'diMeola', 'Zandusky']
names.sort ()
yazdırmak (adları)

Bu çıktı:

['Adams', 'Ma', 'Zandusky', 'diMeola']

DiMeola'nın Zandusky'den sonra gelmesi bazı yeni başlayanlar için yanlış görünüyor. Ancak bilgisayarlar her zaman yaptığımız gibi bir şey görmezler. (Aslında, hiçbir şey “görmezler” çünkü gözleri veya beyinleri yoktur… ama bu konunun yanındadır.) DiMeola'nın Zandusky'den sonra gelmesinin nedeni, sıralamanın her birinin içinde bulunduğu bir sistem olan ASCII'ye dayanmasıdır. karakteri bir sayı ile gösterilir.

Tüm küçük harfler, büyük harflerden daha yüksek sayılara sahiptir. Bu nedenle, sıralama yaparken, küçük harflerle başlayan tüm kelimeler büyük harfle başlayan sözcüklerin arkasından gelir. Başka bir şey yoksa, en azından küçük bir hmm garanti eder.

Bu konularda yardımcı olmak için Python sort () yöntemi, parantezlerin içine nasıl sıralanacağını söyleyebileceğiniz bir key = ifadesi eklemenizi sağlar. Sözdizimi:

.sort (anahtar = dönüşüm)

Dönüştürme kısmı, sıralanan veriler üzerinde bazı değişikliklerdir. Şanslıysanız ve len (uzunluk için) gibi yerleşik işlevlerden biri sizin için işe yarayacaksa, bunu dönüşüm yerine kullanabilirsiniz, örneğin:

names.sort (anahtar = len)

Ne yazık ki bizim için dizenin uzunluğu alfabetik olarak yardımcı olmuyor. Yani bunu çalıştırdığınızda, sipariş şu şekilde ortaya çıkıyor:

['Ma', 'Adams', 'diMeola', 'Zandusky']

Sıralama en kısa dizeden (en az karaktere sahip olandan) en uzun dizeye gider. Şu anda yardımcı olmadı.

Sıralamayı tüm küçük harflere veya tüm büyük harflere dayandırmak için key = lower veya key = upper yazamazsınız, çünkü alt ve üst yerleşik işlevler değildir (python 3.7 yerleşik olarak googling yaparak oldukça hızlı bir şekilde doğrulayabilirsiniz fonksiyonlar).

Yerleşik bir işlev yerine, def kullanarak kendinizi tanımladığınız özel bir işlevi kullanabilirsiniz. Örneğin, bir dizeyi kabul eden ve tüm harfleri küçük harfe dönüştürülmüş olarak bu dizeyi döndüren lower () adında bir işlev oluşturabilirsiniz. İşte işlevi:

def düşük (herhangi bir dize):
"" "Dizeyi tüm küçük harflere dönüştürür" ""
anystring.lower () öğesini döndür

Lower adı oluşur ve anystring, ileride ona geçtiğiniz dize için bir yer tutucudur. Return anystring.lower () yöntemi, str (string) nesnesinin .lower () yöntemini kullanarak tüm küçük harfe dönüştürülen dizeyi döndürür. (Daha fazla bilgi için Python dizesi yöntemleri hakkında bilgi edinin.)

Sort () parantezlerinde key = lower kullanamazsınız, çünkü lower () yerleşik bir işlev değildir. Bu bir yöntem… aynı değil. Tüm bu terimlerle biraz sinir bozucu.

Bu işlevi bir Jupyter hücresine veya .py dosyasına yazdığınızı varsayın. Daha sonra işlevi print gibi bir şeyle çağırırsınız (lowercaseof ('Zandusky')). Çıktı olarak elde ettiğiniz şey, aşağıda gördüğünüz gibi dizenin tüm küçük harfe dönüştürülmesidir.

Python'da özel işlev alt ()

Tamam, şimdi herhangi bir dizeyi tüm küçük harflere dönüştürmek için özel bir işleve sahipsiniz. Bunu bir sıralama anahtarı olarak nasıl kullanıyorsunuz? Kolay, key = transform komutunu öncekiyle aynı kullanın, ancak dönüşümü özel işlev adınızla değiştirin. Bu işleve Lowercaseof adı verilir, bu nedenle aşağıda gösterildiği gibi .sort (key = lowercaseof) kullanırsınız:

def küçük harf (anystring):
"" "Dizeyi tüm küçük harflere dönüştürür" ""
anystring.lower () öğesini döndür
 
names = ['Adams', 'Ma', 'diMeola', 'Zandusky']
names.sort (anahtar = lowercaseof)

Adların listesini görüntülemek için bu kodu çalıştırmak, sıralamayı küçük harfli dizelere dayandığından doğru sıraya koyar. Çıktı öncekiyle aynı, çünkü yalnızca sahne arkasında gerçekleşen sıralama küçük harfler kullanıyordu. Orijinal veriler hala orijinal büyük ve küçük harfindedir.

'Adams', 'diMeola', 'Ma', 'Zandusky'

Tüm bunları okuduktan sonra hala uyanık ve bilinçli iseniz, “Tamam, sıralama problemini çözdünüz. Ama burada lambda fonksiyonları hakkında konuştuğumuzu sanıyordum. Lambda işlevi nerede? ”Henüz lambda işlevi yok.

Ancak bu, lambda işlevini nerede kullanabileceğinize mükemmel bir örnektir, çünkü çağırdığınız Python işlevi, lowercaseof (), tüm çalışmalarını tek bir kod satırı ile yapar: return anystring.lower ().

İşleviniz böyle basit bir satır ifadesi ile işini yapabiliyorsa, def ve işlev adını atlayabilir ve sadece bu sözdizimini kullanabilirsiniz:

lambda parametreleri: ifade

Parametreleri, kendi oluşturduğunuz bir veya daha fazla parametre adıyla değiştirin (def'den sonra parantez içindeki adlar ve normal işlevdeki işlev adı). İfadeyi, sözcük dönüşü olmadan işlevin dönmesini istediğinizle değiştirin. Yani bu örnekte lambda ifadesini kullanan anahtar:

lambda anystring: anystring.lower ()

Artık neden anonim bir işlev olduğunu görebilirsiniz. Lowercaseof () işlev adına sahip ilk satırın tamamı kaldırıldı. Bu yüzden lambda ifadesini kullanmanın avantajı, harici özel işlevlere bile ihtiyacınız olmamasıdır. Sadece iki nokta üst üste ve ardından ne döndüreceğini söyleyen bir ifadeye ihtiyacınız vardır.

Aşağıdaki resimde kodun tamamı ve çalıştırılmasının sonucu gösterilmektedir. Lowercaseof () gibi bir müşteri harici işlevine gerek kalmadan uygun sıralama düzeni elde edersiniz. Sıralama anahtarı olarak anystring: anystring.lower () (lambda sözcüğünden sonra) kullanmanız yeterlidir.

Python lambda ifadesi

Ayrıca, herhangi bir dizginin çoğu Pythonista'nın kullanacağından daha uzun bir parametre adı olduğunu da ekleyelim. Python halkı kısa isimlere, hatta tek harfli isimlere düşkündür. Örneğin, herhangi bir dizeyi aşağıdaki gibi s (veya başka bir harf) ile değiştirebilirsiniz ve kod tam olarak aynı şekilde çalışır:

names = ['Adams', 'Ma', 'diMeola', 'Zandusky']
names.sort (anahtar = lambda s: s.lower ())
yazdırmak (adları)

Bu tiradın başlangıcında, lambda fonksiyonunun anonim olması gerekmediğinden bahsedildi. Onlara ad verebilir ve diğer işlevler gibi arayabilirsiniz.

Örneğin, burada herhangi bir sayı alan ve para birimi biçiminde bir dize (yani, önde gelen dolar işareti olan, binler arası virgül ve pennies için iki basamaklı) döndüren currency adında bir lambda işlevi şunlardır:

para birimi = lambda n: f "$ {n:,. 2f}"

İşte, kendisine gönderdiğiniz herhangi bir sayıyı 100 ile çarpan ve sonunda yüzde iki işaretiyle gösteren yüzde adlı bir addır:

yüzde = lambda n: f "{n: .2%}"

Aşağıdaki görüntü, bir Jupyter hücresinin üstünde tanımlanan her iki işlevin örneklerini göstermektedir. Sonra birkaç print deyimi işlevleri isimle çağırır ve bunlara bazı örnek veriler iletir. Her print () ifadesi sayıyı istenen biçimde görüntüler.

Python biçimlendirme numaraları

Bunları tek satırlık lambdalar olarak tanımlamanızın nedeni, tüm işi bir satırda yapabilmenizdir, ilki için f "$ {n:,. 2f}" ve ikinci olan. Ancak bunu bu şekilde yapabilmeniz gerektiği anlamına gelmez. Aşağıdaki gibi normal işlevleri de kullanabilirsiniz:

# Numarayı para birimi biçiminde göster.
def para birimi (n):
dönüş f "$ {n:,. 2f}"
 
def yüzde (n):
# Sayıyı yüzde biçiminde göster.
dönüş f "{n: .2%}"

Bu daha uzun sözdizimi ile daha fazla bilgi de iletebilirsiniz. Örneğin, varsayılan olarak belirli bir genişlikte (15 karakter gibi) sağa hizalı bir biçime ayarlayabilirsiniz, böylece tüm sayılar aynı genişliğe sağa hizalı olarak gelir. Görüntü, iki fonksiyonda bu varyasyonu göstermektedir.

Python biçimlendirme işlevi sabit genişlik

Yukarıdaki resimde ikinci parametre isteğe bağlıdır ve atlanırsa varsayılan olarak 15 olur. Eğer böyle çağırırsanız:

Baskı (para birimi (9999))

… Sol tarafta 15 karakter genişliğinde yeterli boşluklar ile 9,999,00 dolarlık bir dolgu elde edersiniz. Bunun yerine böyle çağırırsanız:

Baskı (para birimi (9999,20)

… Yine de 9,999,00 dolar kazanıyorsunuz, ancak solda 20 karakter genişliğinde yeterli alan var.

Yukarıda kullanılan .ljust () yöntemi, bir dizenin sol tarafını belirtilen genişlik için yeterli boşluklarla dolduran bir Python yerleşik dize yöntemidir. Sağ tarafı doldurmak için bir rjust () yöntemi de var. Boşluk dışında bir karakter de belirtebilirsiniz. Daha fazla bilgiye ihtiyacınız varsa Google python 3 ljust rjust.

İşte orada, Python'da kendi özel işlevlerinizi oluşturma yeteneği var. Gerçek hayatta, yapmak istediğiniz şey, uygulamanızda tekrar tekrar aynı kod yığınına (aynı giriş bilgisine) erişmeniz gerektiğini fark ettiğinizde, tekrar tekrar kodlayın. Bunun yerine, tüm bu kodu adıyla arayabileceğiniz bir işleve yerleştirin.

Bu şekilde, Python dize kodunu değiştirmeye karar verirseniz, değişmesi gereken tüm yerleri bulmak için uygulamanızı incelemeniz gerekmez. Tek bir yerde tanımlandığı işlevde değiştirin.

  1. Python Listeleri Nasıl Tanımlanır ve Kullanılır

Alan Shovic, John Shovic tarafından

Python'daki en basit veri toplama bir listedir. Liste, köşeli parantez içindeki virgülle ayrılmış veri öğelerinin listesidir. Genellikle, Python listesine, tıpkı değişkenlerde yaptığınız gibi bir = işareti kullanarak bir ad atarsınız. Liste sayılar içeriyorsa, çevresinde tırnak işareti kullanmayın. Örneğin, test puanlarının bir listesi:

puanlar = [88, 92, 78, 90, 98, 84]

Liste dizeler içeriyorsa, her zamanki gibi, bu dizeler bu örnekte olduğu gibi tek veya çift tırnak işaretleri içine alınmalıdır:

Listenin içeriğini ekranda görüntülemek için, listeyi herhangi bir normal değişkeni yazdırdığınız gibi yazdırabilirsiniz. Örneğin, bu listeyi tanımladıktan sonra kodunuzda print (öğrenciler) yürütmek bunu ekranda gösterir.

['Mark', 'Amber', 'Todd', 'Anita', 'Sandy']

Bu tam olarak aklınızdakiler olmayabilir. Ancak endişelenmeyin, Python listelerdeki verilere erişmek ve istediğiniz gibi görüntülemek için birçok harika yol sunar.

Python liste öğelerini konuma göre gönderme

Herhangi bir sayı görmemenize rağmen listedeki her öğenin sıfırla başlayan bir konum numarası vardır. Listedeki herhangi bir öğeye, listenin adını ve ardından köşeli parantez içindeki bir sayıyı kullanarak numarasına başvurabilirsiniz. Başka bir deyişle, bu sözdizimini kullanın:

ListName [x]

Liste adını, eriştiğiniz listenin adıyla ve x'i istediğiniz öğenin konum numarasıyla değiştirin. Unutmayın, ilk öğe her zaman sıfırdır, bir değil. Örneğin, aşağıdaki ilk satırda öğrenciler adında bir liste tanımlarım ve sonra bu listeden sıfır öğe numarasını yazdırırım. Kod yürütülürken sonuç, Mark isminin görüntülenmesidir.
öğrenciler = ["Mark", "Amber", "Todd", "Anita", "Sandy"]
Baskı (öğrenciler [0])
işaret

Erişim listesi öğelerini okurken, profesyoneller numaradan önce sub sözcüğünü kullanır. Örneğin, öğrenciler [0] sıfırın altındaki öğrenciler olarak söylenir.

Bu sonraki örnekte skor adında bir liste gösterilmektedir. Print () işlevi, listedeki son puanın konum numarasını 4 olarak yazdırır (birincisi her zaman sıfırdır).

puanlar = [88, 92, 78, 90, 84]
baskı (puanlar [4])
84

Var olmayan bir liste öğesine erişmeye çalışırsanız, "aralık dışında bir dizin" hatası alırsınız. Dizin bölümü köşeli parantez içindeki sayıya bir referanstır. Örneğin, aşağıdaki resim bir Jupyter not defterinde skor listesinin oluşturulduğu ve ardından skorun [5] yazdırılmaya çalışıldığı küçük bir deneyi göstermektedir.

Başarısız oldu ve puan olmadığı için bir hata yarattı [5]. Sadece skorlar [0], skorlar [1], skorlar [2], skorlar [3] ve skorlar [4] vardır, çünkü sayım her zaman listede ilk olanla sıfırdan başlar.

Python dizin aralığı

Bir Python listesinde dolaşmak

Bir listedeki her öğeye erişmek için bu sözdizimiyle bir for döngüsü kullanın:

listedeki x için:

x yerine istediğiniz bir değişken adını yazın. Listeyi listenin adıyla değiştirin. Kodu okunabilir yapmanın kolay bir yolu, liste adı için her zaman çoğul kullanmaktır (öğrenciler, puanlar gibi). Sonra değişken adı için tekil adı (öğrenci, puan) kullanabilirsiniz. Bu yaklaşımla da alt simge numaralarını (köşeli parantez içindeki numaralar) kullanmanıza gerek yoktur. Örneğin, aşağıdaki kod, puan listesindeki her puanı yazdırır:

puanlar için puan:
Baskı (skor)

Döngü içinde yürütülecek kodu her zaman girintili hale getirmeyi unutmayın. Bu görüntü, Jupyter not defterinde kod çalıştırmanın sonucunu görebileceğiniz daha eksiksiz bir örnek göstermektedir.

Bir Python listesinde dolaşmak

Python listesinin bir öğe içerip içermediğini görme

Kodunuzun, bir listenin içeriğini zaten bir öğe içerip içermediğini kontrol etmesini istiyorsanız, if ifadesinde veya değişken atamasında listname içinde kullanın.

Örneğin, aşağıdaki görüntüdeki kod bir ad listesi oluşturur. Daha sonra, iki değişken, Anita ve Bob isimlerini listelemenin sonuçlarını saklar. Her değişkenin içeriğini yazdırmak, adın (Anita) listede olduğu değişken için True değerini gösterir. Bob'un listede olup olmadığını test etmek yanlıştır.

Bir öğenin Python listesinde olup olmadığını görme

Bir Python listesinin uzunluğunu alma

Listede kaç öğe olduğunu belirlemek için len () işlevini kullanın (uzunluk kısaltması). Listenin adını parantez içine alın. Örneğin, aşağıdaki kodu bir Jupyter not defterine veya Python istemine veya herhangi bir şeye yazın:

öğrenciler = ["Mark", "Amber", "Todd", "Anita", "Sandy"]
yazdırmak (len (öğrenci))

Bu kodu çalıştırmak bu çıktıyı üretir:

5

Listede gerçekten beş öğe var, ancak sonuncusu her zaman sayıdan bir tane daha az, çünkü Python sıfıra saymaya başlıyor. Yani sonuncusu Sandy aslında öğrencilere [4] değil, öğrencilere [4] atıfta bulunur.

Python listesinin sonuna bir öğe ekleme

Python kodunuzun listenin sonuna yeni bir öğe eklemesini istediğinizde, .append () yöntemini parantez içine eklemek istediğiniz değerle kullanın. Tırnak işaretleri içinde değişken adı veya değişmez değer kullanabilirsiniz.

Örneğin, aşağıdaki görüntüde students.append ("Goober") yazan satır Goober adını listeye ekler. Students.append (new_student) yazan satır, listeye new_student adlı değişkende saklanan adı ekler. .Append () yöntemi her zaman listenin sonuna eklenir. Listeyi yazdırdığınızda, sonunda bu iki yeni adı görürsünüz.

Python ekleme listesi

Bir öğenin listede olup olmadığını görmek için bir test kullanabilir ve ardından yalnızca öğe henüz orada olmadığında ekleyebilirsiniz. Örneğin, aşağıdaki kod listeye Amber adını eklemez, çünkü bu ad listede zaten bulunur:

student_name = "Amanda"

# Öğrenci_adı ekleyin ancak yalnızca listede yoksa.
öğrencilerdeki öğrenci_adı:
    yazdır (öğrenci_adı + "zaten listede")
Başka:
    students.append (STUDENT_NAME)
    yazdır (öğrenci_adı + "listeye eklendi")

Python listesine bir öğe ekleme

Append () yöntemi listenin sonuna bir öğe eklemenize izin verse de, insert () yöntemi listeye herhangi bir konumda bir öğe eklemenizi sağlar. İnsert () sözdizimi

listname.insert (konum; öğe)

Liste adını listenin adıyla, öğeyi eklemek istediğiniz konumla değiştirin (örneğin, ilk öğeyi yapmak için 0, ikinci öğeyi yapmak için 1, vb.). Öğeyi, listeye koymak istediğiniz değeri veya değeri içeren bir değişkenin adıyla değiştirin.

Örneğin, aşağıdaki kod Lupe'yi listedeki ilk öğe yapar:

# Dizelerin (adların) bir listesini oluşturun.
öğrenciler = ["Mark", "Amber", "Todd", "Anita", "Sandy"]

student_name = "Lupe"
# Listenin önüne öğrenci adı ekleyin.
students.insert (0, STUDENT_NAME)

# Bana yeni listeyi göster.
yazdırmak (öğrenci)

Kodu çalıştırırsanız, print (öğrenciler) yeni ad eklendikten sonra aşağıdaki gibi listeyi gösterir:

['Lupe', 'Mark', 'Amber', 'Todd', 'Anita', 'Sandy']

Python listesindeki bir öğeyi değiştirme

Listedeki bir öğeyi, tıpkı değişkenlerde yaptığınız gibi = atama işlecini (bu ortak Python işleçlerine bakın) kullanarak değiştirebilirsiniz. Dizin numarasını, değiştirmek istediğiniz öğenin köşeli parantezlerine eklediğinizden emin olun. Sözdizimi:

ListName [göstergesi] = newvalue

Liste adını, listenin adıyla değiştirin; dizini, değiştirmek istediğiniz öğenin alt simge (dizin numarası) ile değiştirin; ve yeni değeri liste öğesine koymak istediğinizle değiştirin. Örneğin, şu koda bir göz atın:

# Dizelerin (adların) bir listesini oluşturun.
öğrenciler = ["Mark", "Amber", "Todd", "Anita", "Sandy"]
öğrenciler [3] = "Hobart"
yazdırmak (öğrenci)

Bu kodu çalıştırdığınızda, çıktı aşağıdaki gibidir, çünkü Anita’nın adı Hobart olarak değiştirilmiştir.

['Mark', 'Amber', 'Todd', 'Hobart', 'Sandy']

Python listelerini birleştirme

Tek bir listede birleştirmek istediğiniz iki listeniz varsa, ext () işlevini sözdizimiyle kullanın:

original_list.extend (additional_items_list)

Kodunuzda, orijinal_listeyi, yeni liste öğeleri ekleyeceğiniz listenin adıyla değiştirin. Additional_items_list öğesini, ilk listeye eklemek istediğiniz öğeleri içeren listenin adıyla değiştirin. İşte list1 ve list2 adlı listeleri kullanarak basit bir örnek. List1.extend (list2) işlemini yürüttükten sonra, ilk liste, her iki listeden de öğeleri içerir; sondaki print () ifadesinin çıktısında görebilirsiniz.

# İki Ad listesi oluşturun.
list1 = ["Zara", "Lupe", "Hong", "Alberto", "Jake"]
list2 = ["Huey", "Dewey", "Louie", "Nader", "Bubba"]

# List1'e liste2 adları ekleyin.
list1.extend (Listesi 2)

# Listeyi yazdır 1.
yazdırmak (list1)

['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake', 'Huey', 'Dewey', 'Louie', 'Nader', 'Bubba']

Kolay Parcheesi, değil mi?

Python liste öğelerini kaldırma

Python listeden herhangi bir değeri kaldırabilmeniz için remove () yöntemi sunar. Öğe listede birden çok kez bulunuyorsa, yalnızca ilk tekrarlama kaldırılır. Örneğin, aşağıdaki kod, C harfini birkaç kez tekrarlayan harflerin bir listesini gösterir. Daha sonra kod, C harfini listeden kaldırmak için letters.remove ("C") kullanır:

# Listeden "C" yi kaldırın.
letters.remove ( "C")

# Bana yeni listeyi göster.
yazdırmak (harf)

Bu kodu gerçekten çalıştırıp listeyi yazdırdığınızda, yalnızca ilk C harfinin kaldırıldığını görürsünüz:

['A', 'B', 'D', 'C', 'E', 'C']

Bir öğenin tümünü kaldırmanız gerekiyorsa, öğe hala listede kaldığı sürece .remove öğesini tekrarlamak için bir while döngüsü kullanabilirsiniz. Örneğin, bu kod “C” hala listede olduğu sürece .remove öğesini tekrarlar.

# Dizeler listesi oluşturun.
letters = ["A", "B", "C", "D", "C", "E", "C"]

Bir öğeyi listedeki konumuna göre kaldırmak istiyorsanız, pop () değerini bir değerle kaldırmak () yerine dizin numarasıyla kullanın. Son öğeyi listeden kaldırmak istiyorsanız, dizin numarası olmadan pop () kullanın.

Örneğin, aşağıdaki kod bir liste oluşturur, bir satır ilk öğeyi (0), diğeri ise son öğeyi (pop () parantez içinde olmayan) kaldırır. Listenin yazdırılması, bu iki öğenin kaldırıldığını gösterir:

# Dizeler listesi oluşturun.
letters = ["A", "B", "C", "D", "E", "F", "G"]
 
# İlk öğeyi kaldırın.
letters.pop (0)
# Son öğeyi kaldırın.
) (Letters.pop
 
# Bana yeni listeyi göster.
yazdırmak (harf)

Kodun çalıştırılması, ilk ve son öğelerin patlamasının gerçekten işe yaradığını gösterir:

['B', 'C', 'D', 'E', 'F']

Listeden bir öğeyi açtığınızda (), bu değerin bir kopyasını bazı değişkenlerde saklayabilirsiniz. Örneğin, bu görüntü yukarıdaki ile aynı kodu göstermektedir. Ancak, kaldırılanların kopyalarını first_removed ve last_removed adlı değişkenlerde saklar. Sonunda Python listesini yazdırır ve ayrıca hangi harflerin kaldırıldığını gösterir.

Python listesinden öğeleri kaldır

Python ayrıca, listeden herhangi bir öğeyi dizin numarasına (konumuna) göre silen bir del (silme kısaltması) komutu sunar. Ama yine, ilk öğenin sıfır olduğunu hatırlamanız gerekir. Diyelim ki, 2 numaralı öğeyi listeden silmek için aşağıdaki kodu çalıştırdınız:

# Dizelerin bir listesini oluşturun.
letters = ["A", "B", "C", "D", "E", "F", "G"]
 
# Alt öğe 2'yi kaldır.
del harfleri [2]
 
yazdırmak (harf)

Bu kodu çalıştırmak listeyi aşağıdaki gibi tekrar gösterir. Harfler 0, 1, 2, 3 ve benzeri numaralandığından silinecek doğru öğe olan C harfi silinmiştir.

['A', 'B', 'D', 'E', 'F', 'G']

Tüm listeyi silmek için del komutunu da kullanabilirsiniz. Köşeli parantezleri ve dizin numarasını kullanmayın. Örneğin, aşağıda gördüğünüz kod bir liste oluşturur ve listeyi siler. Silme işleminden sonra listeyi yazdırmaya çalışmak hataya neden olur, çünkü print () ifadesi yürütüldüğünde liste artık mevcut değildir.

Python listesini sil

Bir Python listesini temizleme

Bir listenin içeriğini silmek, ancak listenin kendisini silmek istemiyorsanız .clear () kullanın. Liste hala var; ancak, hiçbir öğe içermiyor. Başka bir deyişle, boş bir liste. Aşağıdaki kod, bunu nasıl test edebileceğinizi gösterir. Kodun çalıştırılması sonunda listenin boş olduğunu bildiren [] görüntülenir:

# Dizelerin bir listesini oluşturun.
letters = ["A", "B", "C", "D", "E", "F", "G"]
 
# Tüm girişlerin listesini silin.
) (Letters.clear
 
# Bana yeni listeyi göster.
yazdırmak (harf)

[]

Bir öğenin Python listesinde kaç kez göründüğünü sayma

Bir öğenin listede kaç kez göründüğünü saymak için Python count () yöntemini kullanabilirsiniz. Diğer liste yöntemlerinde olduğu gibi, sözdizimi basittir:

listname.count (x)

Liste adını, listenizin adıyla, x ise aradığınız değerle (veya bu değeri içeren bir değişkenin adıyla) değiştirin.

Aşağıdaki görüntüdeki kod, .count () parantezleri içindeki bir B harfi kullanarak listede B harfinin kaç kez göründüğünü sayar. Aynı kod aynı zamanda C derecelerinin sayısını da sayar, ancak bu değer sadece sözdizimindeki farkı göstermek için bir değişkende saklanır. Her iki sayım da, programın çıktısında altta gördüğünüz gibi çalıştı. Biri herhangi bir değişken kullanmadan F variables'leri saymak için eklendi. F'ler mesajı görüntüleyen kodda sayıldı. F notu yoktur, bu nedenle çıktıda gördüğünüz gibi sıfır döndürür.

Python liste öğelerini say

İleti oluşturmak için sayıları ve dizeleri birleştirmeye çalışırken, str () işlevini kullanarak sayıları dizelere dönüştürmeniz gerektiğini unutmayın. Aksi takdirde, yalnızca str ("int" değil) str'yi birleştirebilecek bir hata mesajı alırsınız. Bu iletide, int tamsayı kısaltmasıdır ve str dize kısaltmasıdır.

Bir Python liste öğesinin dizinini bulma

Python, listedeki bir öğenin dizin numarasına göre konumunu gösteren bir sayı döndüren bir .index () yöntemi sunar. Sözdizimi:

listname.index (x)

Her zaman olduğu gibi, liste adını aramak istediğiniz listenin adıyla değiştirin. X'i aradığın şeyi değiştir (her zamanki gibi değişmez ya da değişken ad olarak). Tabii ki, öğenin listede olduğu konusunda bir garanti yoktur ve olsa bile, öğenin listede yalnızca bir kez olduğunu garanti etmez. Öğe listede yoksa, bir hata oluşur. Öğe listede birden çok kez bulunuyorsa, eşleşen ilk öğenin dizini döndürülür.

Aşağıdaki resimde, programın F_index = grades.index (look_for) satırında kilitlendiği, listede F olmadığı için bir örnek gösterilmektedir.

Python liste öğesi dizini

Bu sorunu aşmanın kolay bir yolu, bir öğenin dizin numarasını almaya çalışmadan önce listede olup olmadığını görmek için bir if ifadesi kullanmaktır. Öğe listede yoksa, bunu söyleyen bir mesaj görüntüleyin. Aksi takdirde, dizin numarasını alın ve bir mesajda gösterin. Bu kod aşağıdaki gibidir:

# Dizelerin bir listesini oluşturun.
sınıflarda = ["C", "B", "A", "D", "C", "B", "C"]
# Ne arayacağınıza karar verin
look_for = "F"
# Öğenin listede olup olmadığına bakın.
notlarda look_for ise:
    # Listedeyse dizini alın ve gösterin.
    print (str (look_for) + "dizinde" + str (grades.index (look_for)))
Başka:
    # Listede yoksa, dizin numarasını bile denemeyin.
    print (str (look_for) + "listede yok.")

Python listelerini alfabetik olarak sıralamak ve sıralamak

Python listeleri sıralamak için bir sort () yöntemi sunar. En basit haliyle, listedeki öğeleri (dizgi ise) alfabetik olarak sıralar. Liste sayılar içeriyorsa, en küçükten en büyüğe doğru sıralanırlar. Bunun gibi basit bir sıralama için boş parantezlerle sort () kullanın:

listname.sort ()

Liste adını, listenizin adıyla değiştirin. Aşağıdaki resimde, bir dize listesi ve bir sayı listesi kullanan bir örnek gösterilmektedir. Örnekte, sıralı listelerin her biri yeni bir liste adına atanarak her biri için yeni bir liste oluşturulmuştur. Daha sonra kod, sıralanan her listenin içeriğini yazdırır.

Python listesini sırala

Listenizde büyük ve küçük harflerden oluşan dizeler varsa ve sıralama sonuçları doğru görünmüyorsa, .sort () öğesini .sort (key = lambda s: s.lower ()) ile değiştirmeyi deneyin ve ardından tekrar çalıştırıyoruz.

Tarihler biraz daha hileli çünkü bunları sadece "12/31/2020" gibi dize olarak yazamazsınız. Doğru şekilde sıralamak için tarih veri türü olmalıdırlar. Bu, her tarihi tanımlamak için datetime modülünü ve date () yöntemini kullanmak anlamına gelir. Tarihleri ​​listeye diğer listelerde yaptığınız gibi ekleyebilirsiniz. Örneğin, aşağıdaki satırda, kod dört tarihin bir listesini oluşturur ve kod gayet iyi durumdadır.

tarihler = [dt.date (2020,12,31), dt.date (2019,1,31), dt.date (2018,2,28), dt.date (2020,1,1)]

Listeyi bu şekilde oluşturursanız bilgisayar kesinlikle aklınıza gelmez. Ancak kodu kendiniz veya diğer geliştiriciler için daha okunabilir hale getirmek istiyorsanız, her bir tarihi, her seferinde bir tane oluşturmak ve eklemek isteyebilirsiniz, bu yüzden neler olduğunu görmek biraz daha kolaydır ve böylece bir kod satırında çok fazla virgülle uğraşmak. Aşağıdaki resim datelist adlı boş bir listenin oluşturulduğu bir örneği göstermektedir:

datelist = []
Python'da tarihleri ​​görüntüleme

Sonra dt.date (yıl, ay, gün) sözdizimi kullanılarak bir kerede bir tarih listeye eklendi.

Liste oluşturulduktan sonra kod, bunları kronolojik sıraya (en sondan en yeniye) sıralamak için datelist.sort () kullanır. Bu kodda, veri türü bilgilerinin dahil olduğu tarihleri ​​görüntülediği için bu kodda print (datelist) kullanmanıza gerek yoktur:

[datetime.date (2018, 2, 28), datetime.date (2019, 1, 31), datetime.date (2020, 1, 1), datetime.date (2020, 12, 31)]

Okunması en kolay liste değil. Bu nedenle, tüm listeyi bir print () ifadesiyle yazdırmak yerine, listedeki her bir tarih arasında döngü yapabilir ve her birini% m /% d /% Y f-stringiyle biçimlendirilmiş olarak yazdırabilirsiniz. Bu, yukarıdaki görüntünün altında görebileceğiniz gibi, her tarihi kendi satırında aa / gg / yyyy

Öğeleri ters sırada sıralamak istiyorsanız, sort () parantezlerinin içine reverse = True ifadesini girin (ve ilk harfi büyük yapmayı unutmayın). Aşağıdaki resim, üç listenin tümünü reverse = True kullanarak azalan (ters) sırayla sıralama örneklerini göstermektedir.

Python listesindeki bilgileri tersine sırala

Bir Python listesini tersine çevirme

Ayrıca, .reverse yöntemini kullanarak listedeki öğelerin sırasını tersine çevirebilirsiniz. Bu, tersine sıralamakla aynı değildir, çünkü tersine sıraladığınızda, yine de sıralarsınız: Dizeler için Z – A, sayılar için en büyüğünden en küçüğe, tarihler için en yeniden en eskiye. Bir listeyi ters çevirdiğinizde, sıraları ne olursa olsun, listedeki öğeleri herhangi bir şekilde sıralamaya çalışmadan ters çevirirsiniz.

Aşağıdaki kod, listedeki adların sırasını tersine çevirip listeyi yazdırdığınız bir örneği gösterir. Çıktı, orijinal sıralarından ters çevrilmiş liste öğelerini gösterir:

# Dizelerin bir listesini oluşturun.
names = ["Zara", "Lupe", "Hong", "Alberto", "Jake"]
# Listeyi ters çevir
) (Names.reverse
# Listeyi yazdır
yazdırmak (adları)
 
['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']

Bir Python listesini kopyalama

Listenin bir kopyasıyla çalışmanız gerekirse, orijinal listeyi değiştirmemek için .copy () yöntemini kullanın. Örneğin, aşağıdaki kod önceki koda benzer, ancak orijinal listenin sırasını tersine çevirmek yerine listenin bir kopyasını oluşturup bu kodu tersine çevirirsiniz. Her listenin içeriğini yazdırmak, ilk listenin hala orijinal sırada nasıl olduğunu gösterirken ikinci listenin tersini gösterir:

# Dizelerin bir listesini oluşturun.
names = ["Zara", "Lupe", "Hong", "Alberto", "Jake"]
 
# Listenin bir kopyasını oluşturun
backward_names = names.copy ()
# Kopyayı ters çevir
backward_names.reverse ()
 
# Listeyi yazdır
yazdırmak (adları)
yazdırmak (backward_names)
 
['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake']
['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']

İlerideki referanslar için aşağıdaki tabloda öğrendiğiniz yöntemler özetlenmektedir.