Làm cách nào tôi có thể trích xuất tất cả các giá trị từ một từ điển trong Python?


177

Tôi có một cuốn từ điển d = {1:-0.3246, 2:-0.9185, 3:-3985, ...}.

Làm cách nào để trích xuất tất cả các giá trị của dmột danh sách l?

Câu trả lời:


338

Nếu bạn chỉ cần các phím từ điển 1, 23sử dụng: your_dict.keys().

Nếu bạn chỉ cần các giá trị điển -0.3246, -0.9185-3985sử dụng: your_dict.values().

Nếu bạn muốn cả khóa và giá trị sử dụng: your_dict.items()sẽ trả về một danh sách các bộ dữ liệu [(key1, value1), (key2, value2), ...].


64
Nếu bạn đang sử dụng Python 3, bạn sẽ muốn sử dụng list(your_dict.values())để lấy danh sách (chứ không phải đối tượng dict_values).
Matthias Braun

40

Sử dụng values()

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

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

16

Nếu bạn muốn tất cả các giá trị, sử dụng điều này:

dict_name_goes_here.values()

Nếu bạn muốn tất cả các phím, sử dụng:

dict_name_goes_here.keys()

NẾU bạn muốn tất cả các mục (cả khóa và giá trị), tôi sẽ sử dụng mục này:

dict_name_goes_here.items()


9

Đối với các dicts lồng nhau, danh sách các dicts và dicts của các dicts được liệt kê, ... bạn có thể sử dụng

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 

Một ví dụ:

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]

Tái bút: Tôi yêu yield. ;-)


7

Đối với Python 3, bạn cần:

list_of_dict_values = list(dict_name.values())

Cảm ơn bạn đã đề cập đến phương pháp đó list()là cần thiết
Md. Sabbir Ahmed

5

Nếu bạn muốn tất cả các giá trị, sử dụng điều này:

dict_name_goes_here.values()


3

Để xem các phím:

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

Để có được các giá trị mà mỗi khóa được tham chiếu:

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

Thêm vào danh sách:

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

việc hiểu danh sách cũng có thể giúp ích
DeafaltCoder

list = [d [key] cho khóa trong d.keys ()]
DeafaltCoder

0

Về nguyên tắc, gõ vịt Pythonic sẽ xác định những gì một đối tượng có thể làm, tức là các thuộc tính và phương thức của nó. Bằng cách nhìn vào một đối tượng từ điển, người ta có thể cố gắng đoán nó có ít nhất một trong các cách sau: dict.keys()hoặc dict.values()phương thức. Bạn nên cố gắng sử dụng phương pháp này cho công việc trong tương lai với các ngôn ngữ lập trình có kiểm tra kiểu xảy ra trong thời gian chạy, đặc biệt là các ngôn ngữ có tính chất gõ vịt.


0
dictionary_name={key1:value1,key2:value2,key3:value3}
dictionary_name.values()
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.