sözlükte değer anahtarı al
Sözlükte yaş bakmak ve eşleşen adını gösteren bir fonksiyon yaptım:
list = {'george':16,'amber':19}
search_age = raw_input("Provide age")
for age in list.values():
if age == search_age:
name = list[age]
print name
Karşılaştırmak için nasıl biliyorum sadece kişinin adını göstermek için nasıl bilmiyorum yaşını bulmak. Ayrıca, KeyError
alma nedeniyle 5 satır ediyorum. Doğru olmadığını biliyorum ama geriye doğru arama yapmak için çözemiyorum.
Herhangi bir yardım mutluluk duyacağız.
CEVAP
Eğer her iki isim istiyorsanızveyaş, (key, value)
tuşuna dizilerini verir .items()
kullanıyor olması gerekir:
for name, age in mydict.items():
if age == search_age:
print name
İki ayrı değişkenler for
döngü içine doğru demet paketten, yaş maç.
Ayrıca eğer genellikle yaşına bakıyor olacaksın eğer sözlüğe geri düşünmelisiniz, ve aynı yaşta iki kişi var:
{16: 'george', 19: 'amber'}
sadece yaparak bir yaş için adını arayabilirsiniz
mydict[search_age]
mydict
list
yerleşik türünün adı olduğu için list
yerine aradım, ve başka bir şey için bu adı kullanmamalısın.
Hatta bir satır: belirli bir yaş ile tüm insanların bir listesini alabilirsiniz
[name for name, age in mydict.items() if age == search_age]
ya eğer her yaş sadece bir kişi ise:
next((name for name, age in mydict.items() if age == search_age), None)
sadece eğer o yaşta olan herkes değil eğer yok None
verecek.
Son olarak, eğer dict
uzun ve sen Python 2, düşünmelisiniz kullanarak .iteritems()
yerine .items()
Kedi Plus mi onun cevabı, beri değil bir kopya listesi.
Python bir sözlükte çok değer eşleme...
Nasıl python sözlükte rastgele bir değ...
C bir Sözlük en yüksek değer anahtarı ...
Ne kadar büyük değer karma anahtarı bu...
sözlük değeri anahtarı al...