İlan

Python sözlüğü, diğer programlama dillerinde bulunan ilişkilendirilebilir bir diziye benzer bir veri yapısıdır. Bir dizi veya liste öğeleri konuma göre dizine ekler. Bir sözlük ise ögeleri dizine ekler anahtarlar dizeler olabilir. Bir sözlüğü sırasız diziler olarak düşünün anahtar değeri çiftleri.

bir python sözlüğü anahtar / değer çifti

Bu yazıda sizi python sözlüğü ile tanıştırıyoruz.

Sözlük Oluşturma

Python sözlüğü oluşturmanın birkaç yolu vardır. En basiti, sözdizimi ile küme parafini kullanir JSON'u anımsatan Python ve JavaScript'i JSON Kullanarak İletişim KurmaBugün size JavaScript'ten Python'a veri göndermek için JSON'u nasıl kullanacağınızı göstereceğim. İhtiyacınız olan tüm kodlarla birlikte bir web sunucusunun nasıl kurulacağını ele alacağım. Daha fazla oku .

users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27}

Sayıları tuş olarak da kullanabilirsiniz. Ancak, kayan nokta sayılarını anahtar olarak kullanırken dikkatli olun, çünkü bilgisayar bunları yaklaşık olarak saklar RAM ve Bellek Yönetimi Hakkında Bilmeniz Gereken Her Şey

instagram viewer
RAM, bilgisayarınızın kısa süreli hafızasıdır. Bu nedenle, bellek yönetiminin sistem performansı üzerinde önemli bir etkisi vardır. Burada RAM'in nasıl çalıştığını ve verimliliğini artırmak için herhangi bir şey yapıp yapamayacağınızı açıklıyoruz. Daha fazla oku .

rain_percent = {1980: '% 17', 1981: '% 15', 1982: '% 10'} yağmur_percent yazdır. print rain_percent [1980] # yazdırır. {1980: '17%', 1981: '15%', 1982: '10%'} 17%

Anahtar / Değer Çiftlerini Belirleme

Ayrıca, bir anahtar kelime bağımsız değişkenleri olarak ad değeri çiftlerini kullanarak bir sözlük oluşturabilir ve başlatabilirsiniz. dict () Yapıcı.

nüfus = dikte (California = 37253956, Colorado = 5029196, Connecticut = 3574097, Delaware = 897934) baskı sayısı. # yazdırır. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Anahtar / Değer Gruplarının Dizisi

Bir sözlük oluşturmanın başka bir yolu da bir dizi anahtar / değer çifti kullanmaktır. İşte yukarıdaki ile aynı örnek.

çiftler = [('California', 37253956), ('Colorado', 5029196), ('Connecticut', 3574097), ('Delaware', 897934)] nüfus = dikte (çiftler) baskı sayısı. # yazdırır. {'Connecticut': 3574097, 'Delaware': 897934, 'California': 37253956, 'Colorado': 5029196}

Dict Anlama

Diksiyon anlama, değerleri tuşlara dayanarak hesaplayabiliyorsanız, dikteyi başlatmak için harika bir sözdizimi sağlar. Aşağıda, bir sayı aralığı için sayı ve kare değerlerinin bir diktesi başlatılır.

x in xrange (10, 20) için {x: x ** 2 yazdır} # yazdırır. {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}

O nasıl çalışır? İkinci bölüm (x in xrange için (10, 20)), belirtilen aralıktaki bir sayı aralığını döndürür. Dikseli anlama bölümü ({x: x ** 2 ..}) bu aralığın üzerinden geçer ve sözlüğü başlatır.

Python Sözlüğü ile Çalışma

Sözlükleri oluşturduktan sonra ne yapabilirsiniz? Öğelere erişebilir, değerleri güncelleyebilir, öğeleri silebilir vb.

Python Sözlük Öğelerine Erişme

Köşeli parantez içindeki anahtarı kullanarak bir diksiyon öğesine erişme bir dizi veya liste Python'da Diziler ve Listeler Nasıl Çalışır?Diziler ve listeler, programlamada en yararlı veri yapılarından bazılarıdır - ancak az sayıda kişi bunları tam potansiyellerinde kullanır. Daha fazla oku .

baskı nüfusu ['Delaware'] # yazdırır. 897934.

Anahtar bir sayı ise, tırnak işaretlerine ihtiyacınız yoktur. İfade daha sonra bir liste veya dizi dizine ekleme gibi görünür.

print rain_percent [1980] # yazdırır. 17%

Erişirken anahtarın türü, Python sözlüğünde depolananla eşleşmelidir. Erişim anahtarı bir dize iken saklanan anahtarlar sayı olduğundan aşağıdaki hataya neden olur.

x = '1980' print rain_percent [x] 1 sonuçta 1 sonuç = '1980' > 2 yazdırma rain_percent [x] KeyError: '1980'

Var olmayan bir anahtara erişme bir hatadır.

rain_percent = {1980: '% 17', 1981: '% 15', 1982: '% 10'} print rain_percent [1983] # baskılar 1 rain_percent = {1980: '17% ', 1981: '15%', 1982: '% 10'} > 2 yazdırma rain_percent [1983] KeyError: 1983.

Bir anahtara erişmek ve eşleme yoksa varsayılan bir değer sağlamak için, almak() ikinci argüman olarak varsayılan değeri olan yöntem.

print rain_percent.get (1985, '% 0') # yazdırır. 0%

Varlık Kontrolü

Bir anahtarın gerçekten erişmeye çalışmadan (ve muhtemelen bir anahtarlıkla karşılaşmadan) varlığını kontrol etmek isterseniz ne olur? KeyError yukarıdaki gibi)? Kullanabilirsiniz içinde formdaki anahtar kelime dct içinde anahtar bir boole döndürür.

1980 yağmurda yazdır. rain_percent içinde '1980' yazdırın. # yazdırır. Doğru. Yanlış. 

Formu kullanarak durumu ters çevirin (yani, anahtarın Python sözlüğünde bulunmadığından emin olun) anahtar dct'de değil. Bu standart python olumsuzlamasına eşdeğerdir dct anahtar değil.

print 1980 yağmurda değil. print 1985 yağmurda değil. # yazdırır. Yanlış. Doğru. 

Elemanları Değiştirme

Gerekli tuşa atayarak değeri değiştirin.

users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} kullanıcılar ['yaş'] = 29. baskı kullanıcıları. # yazdırır. {'lastname': 'Smith', 'age': 29, 'firstname': 'John'}

Python sözlüğüne yeni bir eşleme eklemek için aynı sözdizimini kullanın.

kullanıcılar ['dob'] = '15 -sep-1971 ' baskı kullanıcıları. # yazdırır. {'dob': '15 -sep-1971 ',' soyadı ':' Smith ',' yaş ': 29,' ad ':' John '}

Bir sözlükteki birden çok öğeyi tek çekimde güncelleme Güncelleme() yöntem.

users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} users.update ({'yaş': 29, 'dob': '15 -sep-1971 '}) baskı kullanıcıları. # yazdırır. {'dob': '15 -sep-1971 ',' soyadı ':' Smith ',' yaş ': 29,' ad ':' John '}

Tuşunu kullanarak bir tuş için varsayılan değer ayarlama Varsayılana ayarla(). Eşleme yoksa, bu yöntem anahtarın değerini ayarlar. Geçerli değeri döndürür.

# geçerli değeri değiştirmez. print users.setdefault ('ad', 'Jane') # yazdırır. John # değeri ayarlar. print users.setdefault ('şehir', 'NY') # yazdırır. NY # Nihai değer. baskı kullanıcıları. # yazdırır. {'lastname': 'Smith', 'age': 27, 'firstname': 'John', 'city': 'NY'}

Elemanları silme

Sözlükteki eşlemeleri sil del Şebeke. Bu operatör hiçbir şey döndürmüyor.

Bir karşılaşma ile KeyError anahtar sözlükte yoksa.

users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} del kullanıcılar ['yaş'] baskı kullanıcıları. # yazdırır. {'lastname': 'Smith', 'firstname': 'John'}

Kullan pop() Bunun yerine, silinen değeri geri istediğinizde.

users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} print users.pop ('yaş') baskı kullanıcıları. # yazdırır. 27. {'lastname': 'Smith', 'firstname': 'John'}

Bir anahtarı varsa, yoksa bir hataya neden olmadan silmek isterseniz ne olur? Kullanabilirsiniz pop() ve belirt Yok ikinci argüman için aşağıdaki gibi:

users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} users.pop ('foo', Hiçbiri) baskı kullanıcıları. # yazdırır. {'lastname': 'Smith', 'age': 27, 'firstname': 'John'}

Ve burada olmayan anahtarlarda hataya neden olmadan bir grup anahtarı bir sözlükten silmek için bir astar.

users = {'firstname': 'John', 'lastname': 'Smith', 'yaş': 27, 'dob': '15 -sep-1971 '} harita (lambda x: users.pop (x, Hiçbiri), ['yaş', 'foo', 'dob']) baskı kullanıcıları.

Bir sözlükteki tüm anahtarları silmek ister misiniz? Kullan açık() yöntem.

users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} users.clear () baskı kullanıcıları. # yazdırır. {}

Python Sözlükleriyle Döngü

Python birçok döngü yöntemleri Bilgisayar Programlamasında Do-While Döngüsü Nasıl Çalışır?Döngüler, programlamada öğreneceğiniz ilk kontrol türlerinden biridir. Muhtemelen while ve döngüler hakkında bilgi sahibi olursunuz, ancak do-while döngüsü neyi başarır? Daha fazla oku sözlük girişleri üzerinden. İhtiyacınıza uygun birini seçin.

Tuşların Üzerinde Döngü

  • Anahtarları (ve muhtemelen değerleri) sırayla işlemek için en basit yöntem, formun bir döngüsünü kullanır:
    users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} kullanıcılarda k için: print k, '=>', kullanıcılar [k] # yazdırır. soyadı => Smith. yaş => 27. firstname => John.
  • Yöntemi kullanma iterkeys () yukarıdakiyle tamamen aynı şekilde çalışır. Hangi formu kullanmak istediğinizi seçin.
    users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} users.iterkeys () içindeki k için: print k, '=>', kullanıcılar [k] # yazdırır. soyadı => Smith. yaş => 27. firstname => John.
  • Bir döngüdeki anahtarları almak ve işlemek için üçüncü bir yöntem, yerleşik işlevin kullanılmasını içerir iter ().
    users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} iter içindeki k (kullanıcılar): print k, '=>', kullanıcılar [k] # yazdırır. soyadı => Smith. yaş => 27. firstname => John.
  • İşlenmekte olan anahtarın dizinine ihtiyacınız olduğunda, Numaralandırma () gösterildiği gibi yerleşik işlev.
    users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} dizin için numaralandır (kullanıcılar): baskı dizini, anahtar, '=>', kullanıcılar [k] # yazdırır. 0 soyadı => John. 1 yaş => John. 2 ad => John.

Anahtar / Değer Çiftleri Üzerinde Döngü

  • Her bir anahtar / değer çiftini tek bir çağrı ile almak istediğinizde, iteritems ().
    users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} k, v için users.iteritems (): print k, '=>', v. # yazdırır. soyadı => Smith. yaş => 27. firstname => John.

Değerler Üzerinde Yineleme

  • Yöntem itervalues ​​() sözlükteki tüm değerleri yinelemek için kullanılabilir. Bu yöntem kullanarak bir döngüye benzer görünse de değerleri (), tüm değerleri bir kerede ayıklamadığı için daha verimlidir.
    users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} users.itervalues ​​() içindeki değer için: yazdırma değeri. # yazdırır. Smith. 27. John.

Dizileri Ayıklama

Aşağıdaki yöntemler, bir dizi formunda çeşitli Python sözlük bilgilerinin çıkarılmasını açıklar. Ortaya çıkan dizi, normal python yapıları kullanılarak ilmeklenebilir. Ancak, döndürülen dizinin sözlüğün boyutuna bağlı olarak büyük olabileceğini unutmayın. Yani daha fazla olabilir pahalı (bellek bakımından) bu dizileri yukarıdaki yineleyici yöntemlerini kullanmaktan daha iyi işlemek için.

Bu dizilerle çalışmanın kabul edilebilir olduğu bir durum, istenmeyen öğelerle karşılaştığınızda öğeleri sözlükten silmeniz gerektiğidir. Sözlüğü değiştirirken yineleyici ile çalışmak bir RuntimeError hatasına neden olabilir.

  • Yöntem öğeleri () bir dizi anahtar / değer çifti döndürür. Gösterildiği gibi bu anahtar / değer çiftlerini yineleyebilirsiniz:
    users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} k, v için users.items (): print k, '=>', v. # yazdırır. soyadı => Smith. yaş => 27. firstname => John.
  • Yöntemi kullanarak sözlükteki tüm anahtarları alın anahtarlar().
    users = {'firstname': 'John', 'soyadı': 'Smith', 'yaş': 27} kullanıcıları kullan.keys () # yazdırır. ['soyadı', 'yaş', 'ad']

    Tuşlar üzerinde döngü için döndürülen diziyi kullanın.

    users.keys () içindeki k için: print k, '=>', kullanıcılar [k] # yazdırır. soyadı => Smith. yaş => 27. firstname => John.
  • Benzer şekilde, yöntemi kullanın değerleri () sözlükteki tüm değerleri almak için.
    users.values ​​() içindeki değer için: yazdırma değeri. # yazdırır. Smith. 27. John. 

Python Sözlüklerini Nasıl Kullanıyorsunuz?

Bu makalede python sözlükleri için en yaygın kullanım durumlarını ele almaya çalıştık. Tüm ürünlerimize göz attığınızdan emin olun. diğer Python makaleleri Hızlı Öğrenmenize Yardımcı Olacak 10 Temel Python ÖrneğiTemel python örneklerinin bu makalesi, zaten bazı programlama deneyimine sahip olanlar ve Python'a mümkün olan en kısa sürede geçmek isteyenler içindir. Daha fazla oku hatta için Python ipuçları Sizi Python Beginner'dan Pro'ya Taşıyacak 5 DersBu beş kurs, şu anda en sıcak dillerden biri olan Python'da programlama hakkında her şeyi öğretecek. Daha fazla oku . Eklenmesi gerektiğini düşündüğünüz başka kullanım durumlarınız varsa, lütfen aşağıdaki yorumlarda bize bildirin!

Resim Kredi: viper345 / Shutterstock