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?

Naveen C.
sumber

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), ...].

Pierre Bourdon
sumber
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]
Zeekay
sumber
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()
Tyler Crompton
sumber
12

Panggil values()metode di dikt.

David Heffernan
sumber
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. ;-)

Michael Dorner
sumber
7

Untuk Python 3, Anda perlu:

list_of_dict_values = list(dict_name.values())
Faaiz Qadri
sumber
Terima kasih telah menyebutkan metode list()yang diperlukan
Md. Sabbir Ahmed
5

Jika Anda ingin semua nilai, gunakan ini:

dict_name_goes_here.values()
Govind Sagar
sumber
3
d = <dict>
values = d.values()
Gabriel Ross
sumber
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])
Odysseus Ithaca
sumber
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.

dr_dronych
sumber
0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
Shriyan
sumber