Bagaimana saya bisa mengekstrak semua nilai dari kamus dengan Python?


177

Saya punya kamus d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}.

Bagaimana cara mengekstrak semua nilai dmenjadi daftar l?

Jawaban:


338

Jika Anda hanya perlu kunci kamus 1, 2dan 3penggunaan: your_dict.keys().

Jika Anda hanya perlu nilai-nilai kamus -0.3246, -0.9185dan -3985penggunaan: your_dict.values().

Jika Anda ingin menggunakan kunci dan nilai: your_dict.items()yang mengembalikan daftar tupel [(key1, value1), (key2, value2), ...].


64
Jika Anda menggunakan Python 3, Anda ingin menggunakan list(your_dict.values())untuk mendapatkan daftar (dan bukan objek dict_values).
Matthias Braun

40

Menggunakan values()

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

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

16

Jika Anda ingin semua nilai, gunakan ini:

dict_name_goes_here.values()

Jika Anda ingin semua kunci, gunakan ini:

dict_name_goes_here.keys()

JIKA Anda menginginkan semua item (baik kunci dan nilai), saya akan menggunakan ini:

dict_name_goes_here.items()


9

Untuk dict bersarang, daftar dict, dan dict dict yang terdaftar, ... dapat Anda gunakan

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 

Sebuah contoh:

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: Saya suka yield. ;-)





3

Untuk melihat kunci:

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

Untuk mendapatkan nilai yang direferensikan setiap tombol:

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

Tambahkan ke daftar:

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

Pemahaman daftar dapat membantu juga
DeafaltCoder

list = [d [kunci] untuk kunci di d.keys ()]
DeafaltCoder

0

Mengetik bebek Pythonic pada prinsipnya harus menentukan apa yang dapat dilakukan suatu objek, yaitu properti dan metodenya. Dengan melihat objek kamus, seseorang dapat mencoba menebak bahwa ia memiliki setidaknya satu dari berikut ini: dict.keys()atau dict.values()metode. Anda harus mencoba menggunakan pendekatan ini untuk pekerjaan di masa depan dengan bahasa pemrograman yang pemeriksaan tipenya terjadi saat runtime, terutama yang dengan sifat mengetik-bebek.


0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.