Hướng dẫn how to get multiple key values from dictionary in python - cách lấy nhiều giá trị khóa từ từ điển trong python

137

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một từ điển trong Python, và những gì tôi muốn làm là nhận được một số giá trị từ nó làm danh sách, nhưng tôi không biết liệu điều này có được hỗ trợ bởi việc thực hiện hay không.

myDictionary.get('firstKey')   # works fine

myDictionary.get('firstKey','secondKey')
# gives me a KeyError -> OK, get is not defined for multiple keys
myDictionary['firstKey','secondKey']   # doesn't work either

Có cách nào tôi có thể đạt được điều này không? Trong ví dụ của tôi, nó có vẻ dễ dàng, nhưng giả sử tôi có từ điển gồm 20 mục và tôi muốn nhận 5 khóa. Có cách nào khác ngoài việc làm như sau không?

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')

Hướng dẫn how to get multiple key values from dictionary in python - cách lấy nhiều giá trị khóa từ từ điển trong python

Wovano

3,4755 huy hiệu vàng20 Huy hiệu bạc43 Huy hiệu đồng5 gold badges20 silver badges43 bronze badges

Đã hỏi ngày 13 tháng 6 năm 2014 lúc 11:18Jun 13, 2014 at 11:18

Hướng dẫn how to get multiple key values from dictionary in python - cách lấy nhiều giá trị khóa từ từ điển trong python

2

Đã tồn tại một chức năng cho việc này:

from operator import itemgetter

my_dict = {x: x**2 for x in range(10)}

itemgetter(1, 3, 2, 5)(my_dict)
#>>> (1, 9, 4, 25)

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
6 sẽ trả về một tuple nếu có nhiều hơn một đối số được thông qua. Để chuyển danh sách cho
myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
6, hãy sử dụng

itemgetter(*wanted_keys)(my_dict)

Hãy nhớ rằng

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
6 không bọc đầu ra của nó trong một bộ dữ liệu khi chỉ yêu cầu một phím và không hỗ trợ các phím không được yêu cầu.

Đã trả lời ngày 13 tháng 6 năm 2014 lúc 11:42Jun 13, 2014 at 11:42

Hướng dẫn how to get multiple key values from dictionary in python - cách lấy nhiều giá trị khóa từ từ điển trong python

VeedracveedracVeedrac

55,9K14 Huy hiệu vàng109 Huy hiệu bạc166 Huy hiệu Đồng14 gold badges109 silver badges166 bronze badges

10

Sử dụng vòng lặp

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
9:

keys = ['firstKey', 'secondKey', 'thirdKey']
for key in keys:
    myDictionary.get(key)

hoặc một danh sách hiểu:

[myDictionary.get(key) for key in keys]

Đã trả lời ngày 13 tháng 6 năm 2014 lúc 11:20Jun 13, 2014 at 11:20

Máy tínhFellowComputerfellowComputerFellow

11.2K12 Huy hiệu vàng48 Huy hiệu bạc61 Huy hiệu đồng12 gold badges48 silver badges61 bronze badges

5

Tôi muốn đề xuất chức năng

from operator import itemgetter

my_dict = {x: x**2 for x in range(10)}

itemgetter(1, 3, 2, 5)(my_dict)
#>>> (1, 9, 4, 25)
0 rất hữu ích, cho phép một chức năng vận hành phần tử khôn ngoan trong danh sách:

mydictionary = {'a': 'apple', 'b': 'bear', 'c': 'castle'}
keys = ['b', 'c']

values = list( map(mydictionary.get, keys) )

# values = ['bear', 'castle']

Đã trả lời ngày 18 tháng 9 năm 2019 lúc 20:08Sep 18, 2019 at 20:08

Scotttscotttscottt

6995 Huy hiệu bạc7 Huy hiệu đồng5 silver badges7 bronze badges

3

Bạn có thể sử dụng

from operator import itemgetter

my_dict = {x: x**2 for x in range(10)}

itemgetter(1, 3, 2, 5)(my_dict)
#>>> (1, 9, 4, 25)
1 từ Pydash:

from pydash import at
my_dict = {'a': 1, 'b': 2, 'c': 3}
my_list = at(my_dict, 'a', 'b')
my_list == [1, 2]

Đã trả lời ngày 15 tháng 12 năm 2016 lúc 9:47Dec 15, 2016 at 9:47

Bustawinbustawinbustawin

6347 Huy hiệu bạc11 Huy hiệu đồng7 silver badges11 bronze badges

2

Như tôi thấy không có câu trả lời tương tự ở đây - đáng để chỉ ra rằng với việc sử dụng sự hiểu biết (danh sách / máy phát), bạn có thể giải nén nhiều giá trị đó và gán chúng cho nhiều biến trong một dòng mã duy nhất:

first_val, second_val = (myDict.get(key) for key in [first_key, second_key])

Đã trả lời ngày 1 tháng 1 năm 2020 lúc 17:51Jan 1, 2020 at 17:51

EpionepionEpion

4483 Huy hiệu bạc7 Huy hiệu đồng3 silver badges7 bronze badges

Nếu bạn đã cài đặt

from operator import itemgetter

my_dict = {x: x**2 for x in range(10)}

itemgetter(1, 3, 2, 5)(my_dict)
#>>> (1, 9, 4, 25)
2, bạn có thể biến nó thành một chuỗi với các phím làm chỉ mục. Vì vậy, một cái gì đó giống như

import pandas as pd

s = pd.Series(my_dict)

s[['key1', 'key3', 'key2']]

Đã trả lời ngày 4 tháng 10 năm 2019 lúc 7:07Oct 4, 2019 at 7:07

Hướng dẫn how to get multiple key values from dictionary in python - cách lấy nhiều giá trị khóa từ từ điển trong python

Tôi nghĩ rằng việc hiểu danh sách là một trong những cách sạch nhất mà không cần bất kỳ nhập khẩu bổ sung nào:

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
0

Hoặc nếu bạn muốn các giá trị làm biến riêng lẻ thì hãy sử dụng nhiều phân loại:

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
1

Đã trả lời ngày 30 tháng 11 năm 2020 lúc 10:39Nov 30, 2020 at 10:39

Hướng dẫn how to get multiple key values from dictionary in python - cách lấy nhiều giá trị khóa từ từ điển trong python

Andy Brownandy BrownAndy Brown

10,8K2 Huy hiệu vàng38 Huy hiệu bạc56 Huy hiệu Đồng2 gold badges38 silver badges56 bronze badges

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
2

Đã trả lời ngày 3 tháng 2 lúc 7:38Feb 3 at 7:38

Hướng dẫn how to get multiple key values from dictionary in python - cách lấy nhiều giá trị khóa từ từ điển trong python

Nếu bạn muốn giữ lại ánh xạ của các giá trị cho các khóa, bạn nên sử dụng sự hiểu biết chính thống thay thế:

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
3

Đã trả lời ngày 3 tháng 9 lúc 5:52Sep 3 at 5:52

Tschlichtschlichtschlich

331 Huy hiệu bạc4 Huy hiệu đồng1 silver badge4 bronze badges

Nếu các phím dự phòng không quá nhiều, bạn có thể làm điều gì đó như thế này

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
4

Đã trả lời ngày 21 tháng 8 năm 2018 lúc 20:00Aug 21, 2018 at 20:00

myDictionary.get('firstKey')
myDictionary.get('secondKey')
myDictionary.get('thirdKey')
myDictionary.get('fourthKey')
myDictionary.get('fifthKey')
5

Đã trả lời ngày 4 tháng 2 lúc 6:20Feb 4 at 6:20

Hướng dẫn how to get multiple key values from dictionary in python - cách lấy nhiều giá trị khóa từ từ điển trong python

Các khóa từ điển Python có thể có nhiều giá trị không?

Ý tưởng chung: Trong Python, nếu chúng ta muốn một từ điển có nhiều giá trị cho một khóa duy nhất, chúng ta cần lưu trữ các giá trị này trong thùng chứa của riêng chúng trong từ điển.Để làm như vậy, chúng ta cần sử dụng một thùng chứa làm giá trị và thêm nhiều giá trị của chúng ta vào container đó.if we want a dictionary to have multiple values for a single key, we need to store these values in their own container within the dictionary. To do so, we need to use a container as a value and add our multiple values to that container.

Làm thế nào tôi có thể nhận được nhiều giá trị từ một từ điển?

Để nhận nhiều giá trị từ từ điển: Sử dụng phương thức Danh sách.Append () để nối giá trị của mỗi khóa vào danh sách.Danh sách mới sẽ chỉ chứa các giá trị của các khóa được chỉ định.Use the list. append() method to append the value of each key to a list. The new list will only contain the values of the specified keys.

Làm cách nào để in nhiều giá trị từ một khóa trong Python?

Trong Python, nếu chúng ta muốn một từ điển trong đó một khóa có nhiều giá trị, thì chúng ta cần liên kết một đối tượng với mỗi khóa là giá trị.Đối tượng giá trị này nên có khả năng có các giá trị khác nhau bên trong nó.Chúng ta có thể sử dụng một tuple hoặc một danh sách làm giá trị trong từ điển để liên kết nhiều giá trị với một khóa.associate an object with each key as value. This value object should be capable of having various values inside it. We can either use a tuple or a list as a value in the dictionary to associate multiple values with a key.