Python'daki bir sözlükten tüm değerleri nasıl ayıklayabilirim?


177

Bir sözlüğüm var d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}.

Öğesinin tüm değerlerini dbir listeye nasıl çıkarabilirim l?

Yanıtlar:


339

Eğer sadece sözlük anahtarlarını gerekiyorsa 1, 2ve 3kullanımı: your_dict.keys().

Eğer sadece sözlük değerleri gerekiyorsa -0.3246, -0.9185ve -3985kullanımı: your_dict.values().

Hem anahtarların hem de değerlerin kullanılmasını istiyorsanız your_dict.items()tuples listesini döndüren : kullanın [(key1, value1), (key2, value2), ...].


64
Python 3 kullanıyorsanız list(your_dict.values()), bir liste (dict_values ​​nesnesi değil) almak için kullanmak isteyeceksiniz .
Matthias Braun

40

kullanım values()

>>> d = {1:-0.3246, 2:-0.9185, 3:-3985}

>>> d.values()
<<< [-0.3246, -0.9185, -3985]

16

Tüm değerleri istiyorsanız, bunu kullanın:

dict_name_goes_here.values()

Tüm anahtarları istiyorsanız, bunu kullanın:

dict_name_goes_here.keys()

Tüm öğeleri (hem anahtarlar hem de değerler) istiyorsanız, bunu kullanacağım:

dict_name_goes_here.items()


9

Yuvalanmış dikte, dikte listesi ve listelenen dikte dikte için ...

def get_all_values(d):
    if isinstance(d, dict):
        for v in d.values():
            yield from get_all_values(v)
    elif isinstance(d, list):
        for v in d:
            yield from get_all_values(v)
    else:
        yield d 

Bir örnek:

d = {'a': 1, 'b': {'c': 2, 'd': [3, 4]}, 'e': [{'f': 5}, {'g': 6}]}

list(get_all_values(d)) # returns [1, 2, 3, 4, 5, 6]

PS: Seviyorum yield. ;-)


7

Python 3 için ihtiyacınız olanlar:

list_of_dict_values = list(dict_name.values())

Bu yöntemin list()gerekli olduğunu belirttiğiniz için teşekkür ederiz
Md. Sabbir Ahmed

5

Tüm değerleri istiyorsanız, bunu kullanın:

dict_name_goes_here.values()


3

Tuşları görmek için:

for key in d.keys():
    print(key)

Her bir anahtarın referans aldığı değerleri almak için:

for key in d.keys():
    print(d[key])

Bir listeye ekle:

for key in d.keys():
    mylist.append(d[key])

liste anlama da yardımcı olabilir
DeafaltCoder

d.keys ()] içindeki anahtar için list = [d [anahtar]
DeafaltCoder

0

Pythonic duck-tipping prensip olarak bir nesnenin ne yapabileceğini, yani özelliklerini ve yöntemlerini belirlemelidir. Bir sözlük nesnesine bakarak, aşağıdakilerden en az birine sahip olduğunu tahmin etmeye çalışabilirsiniz: dict.keys()veyadict.values() yöntemler. Bu yaklaşımı, çalışma zamanında tür denetimi yapılan programlama dillerinde, özellikle de ördek yazma niteliğinde olanlarda, gelecekteki çalışmalar için kullanmaya çalışmalısınız.


0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.