Python - Sözlük
Her anahtar, değerinden iki nokta üst üste (:) ile ayrılır, öğeler virgülle ayrılır ve her şey küme parantezleri içine alınır. Hiçbir öğe içermeyen boş bir sözlük yalnızca iki küme parantezi ile yazılır, örneğin: {}.
Değerler olmayabilir, ancak anahtarlar sözlük içinde benzersizdir. Bir sözlüğün değerleri herhangi bir türde olabilir, ancak anahtarlar dizeler, sayılar veya diziler gibi değişmez bir veri türünde olmalıdır.
Sözlükteki Değerlere Erişim
Sözlük öğelerine erişmek için, değerini elde etmek için anahtarla birlikte tanıdık köşeli parantezleri kullanabilirsiniz. Aşağıdaki basit bir örnektir -
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
dict['Name']: Zara
dict['Age']: 7
Sözlüğün parçası olmayan bir anahtarla bir veri öğesine erişmeye çalışırsak, aşağıdaki gibi bir hata alırız -
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
dict['Alice']:
Traceback (most recent call last):
File "test.py", line 4, in <module>
print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'
Sözlük Güncelleniyor
Aşağıdaki basit örnekte gösterildiği gibi yeni bir giriş veya anahtar-değer çifti ekleyerek, mevcut bir girişi değiştirerek veya mevcut bir girişi silerek sözlüğü güncelleyebilirsiniz -
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
dict['Age']: 8
dict['School']: DPS School
Sözlük Öğelerini Sil
Tek tek sözlük öğelerini kaldırabilir veya bir sözlüğün tüm içeriğini temizleyebilirsiniz. Tek bir işlemle sözlüğün tamamını da silebilirsiniz.
Bir sözlüğün tamamını açıkça kaldırmak için, delBeyan. Aşağıdaki basit bir örnektir -
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear(); # remove all entries in dict
del dict ; # delete entire dictionary
print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']
Bu, aşağıdaki sonucu verir. Bir istisna oluştuğunu unutmayın çünkü sonradel dict sözlük artık yok -
dict['Age']:
Traceback (most recent call last):
File "test.py", line 8, in <module>
print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable
Note - del () yöntemi sonraki bölümde ele alınmaktadır.
Sözlük Anahtarlarının Özellikleri
Sözlük değerlerinde sınırlama yoktur. Standart nesneler veya kullanıcı tanımlı nesneler gibi rastgele herhangi bir Python nesnesi olabilirler. Ancak, aynı anahtarlar için geçerli değildir.
Sözlük tuşlarıyla ilgili hatırlanması gereken iki önemli nokta var:
(a)Anahtar başına birden fazla girişe izin verilmez. Bu, yinelenen anahtara izin verilmediği anlamına gelir. Atama sırasında yinelenen anahtarlarla karşılaşıldığında, son atama kazanır. Örneğin -
#!/usr/bin/python
dict = {'Name': 'Zara', 'Age': 7, 'Name': 'Manni'}
print "dict['Name']: ", dict['Name']
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
dict['Name']: Manni
(b)Anahtarlar değişmez olmalıdır. Bu, dizeleri, sayıları veya tuple'ları sözlük anahtarları olarak kullanabileceğiniz anlamına gelir, ancak ['anahtar'] gibi bir şeye izin verilmez. Aşağıdaki basit bir örnektir -
#!/usr/bin/python
dict = {['Name']: 'Zara', 'Age': 7}
print "dict['Name']: ", dict['Name']
Yukarıdaki kod çalıştırıldığında, aşağıdaki sonucu verir -
Traceback (most recent call last):
File "test.py", line 3, in <module>
dict = {['Name']: 'Zara', 'Age': 7};
TypeError: unhashable type: 'list'
Yerleşik Sözlük İşlevleri ve Yöntemleri
Python aşağıdaki sözlük işlevlerini içerir -
Sr.No. | Açıklamalı İşlev |
---|---|
1 | cmp (dict1, dict2) Her iki diktenin öğelerini karşılaştırır. |
2 | len (dikte) Sözlüğün toplam uzunluğunu verir. Bu, sözlükteki öğelerin sayısına eşit olacaktır. |
3 | str (dikte) Bir sözlüğün yazdırılabilir bir dize gösterimini üretir |
4 | tür (değişken) Aktarılan değişkenin türünü döndürür. Aktarılan değişken sözlük ise, bir sözlük türü döndürür. |
Python aşağıdaki sözlük yöntemlerini içerir -
Sr.No. | Açıklamalı Yöntemler |
---|---|
1 | dict.clear () Sözlük diktesinin tüm öğelerini kaldırır |
2 | dict.copy () Sözlük diktesinin basit bir kopyasını verir |
3 | dict.fromkeys () Seq gelen anahtarlar ve değerlerle Yeni sözlük oluştur set için değer . |
4 | dict.get (anahtar, varsayılan = Yok) İçin anahtar anahtar anahtar sözlükte yok eğer değeri veya varsayılan döndürür |
5 | dict.has_key (anahtar) İade gerçek Sözlük anahtar eğer dict , yanlış aksi |
6 | dict.items () Dikte'nin (anahtar, değer) tuple çiftlerinin bir listesini verir |
7 | dict.keys () Sözlük diktesinin anahtarlarının listesini verir |
8 | dict.setdefault (anahtar, varsayılan = Yok) Get () ile benzerdir, ancak anahtar halihazırda dikte değilse dict [key] = varsayılan olarak ayarlanır |
9 | dict.update (dict2) Sözlük ekler dict2 için sitesindeki anahtar değerleri çiftlerini dict |
10 | dict.values () Sözlük diktesinin değerlerinin listesini verir |