Python trích xuất khóa từ từ điển

Dễ dàng trích xuất giá trị nếu chúng ta có chìa khóa, giống như mở ổ khóa bằng chìa khóa. Tuy nhiên, điều ngược lại không hề đơn giản, kiểu như “bẻ chìa có ổ”, có thể

Đôi khi, việc trích xuất khóa trở nên quan trọng, đặc biệt khi khóa và giá trị có mối quan hệ một đối một. Đó là, khi một trong số chúng là duy nhất và do đó có thể đóng vai trò là khóa

Trước khi tìm hiểu các phương pháp khác nhau, trước tiên chúng ta sẽ tạo một từ điển với mục đích minh họa.
currency_dict là từ điển có từ viết tắt tiền tệ làm khóa và tên tiền tệ làm giá trị.

currency_dict={'USD':'Dollar',
'EUR':'Euro',
'GBP':'Pound',
'INR':'Rupee'}

Nếu bạn có khóa, nhận giá trị bằng cách thêm khóa vào trong dấu ngoặc vuông.
Ví dụ: currency_dict[‘GBP’] sẽ trả về ‘Bảng Anh’.

Phương pháp 1. Sử dụng danh sách

Bước 1. Chuyển đổi các khóa và giá trị từ điển thành danh sách.
Bước 2. Tìm chỉ mục phù hợp từ danh sách giá trị.
Bước 3. Sử dụng chỉ mục để tìm khóa thích hợp từ danh sách khóa.

key_list=list[currency_dict.keys[]]
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]
Output: 'GBP'

Tất cả ba bước có thể được kết hợp trong một bước duy nhất như dưới đây

list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]

Phương pháp 2. Sử dụng vòng lặp

Phương pháp 1 có thể được sửa đổi một chút bằng cách sử dụng vòng lặp for như bên dưới.
Bước 1. Chuyển đổi các khóa và giá trị từ điển thành danh sách.
Bước 2. Lặp lại tất cả các giá trị trong danh sách giá trị để tìm giá trị cần thiết
Bước 3. Trả về khóa tương ứng từ danh sách khóa.

def return_key[val]:
for i in range[len[currency_dict]]:
if val_list[i]==val:
return key_list[i]
return["Key Not Found"]
return_key["Rupee"]Output: 'INR'

Phương pháp 3. Sử dụng các mục[]

items[] giữ các phần tử từ điển dưới dạng cặp khóa-giá trị.
Bước 1. Lặp lại tất cả các cặp khóa-giá trị trong item[].
Bước 2. Tìm giá trị khớp với giá trị bắt buộc
Bước 3. Trả về khóa từ cặp khóa-giá trị.

def return_key[val]:
for key, value in currency_dict.items[]:
if value==val:
return key
return['Key Not Found']
return_key['Dollar']Output: 'USD'

Phương pháp 4. Sử dụng Pandas DataFrame

Lấy khóa từ sau khi chuyển đổi thành DataFrame theo ý kiến ​​của tôi là phương pháp đơn giản và dễ hiểu nhất.
Tuy nhiên, đây không phải là cách hiệu quả nhất, mà theo ý kiến ​​của tôi sẽ là cách duy nhất trong Phương pháp 1.
Từ điển có thể được chuyển đổi thành DataFrame của gấu trúc như bên dưới.

df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
'curr':list[currency_dict.values[]]}]

Tất cả các khóa nằm trong cột 'abbr' và tất cả các giá trị nằm trong cột 'curr' của DataFrame 'df'.
Bây giờ việc tìm kiếm giá trị rất dễ dàng, chỉ cần trả về giá trị từ cột ‘abbr’ từ hàng trong đó giá trị của cột ‘curr’ là giá trị bắt buộc.

df.abbr[df.curr==val]Output: 2    GBP

Đơn giản hơn nhiều so với âm thanh của nó.
Lưu ý rằng đầu ra cũng chứa chỉ mục. Đầu ra không ở định dạng chuỗi nhưng nó là loại đối tượng Sê-ri gấu trúc.

Đối tượng sê-ri có thể được chuyển đổi thành chuỗi bằng nhiều tùy chọn, một số tùy chọn như sau

df.abbr[df.curr==val].unique[][0]
df.abbr[df.curr==val].mode[][0]
df.abbr[df.curr==val].sum[]
Output : 'GBP'

Tài nguyên

Mã cho bài viết này có sẵn trong Repo GitHub của tôi

Bạn có thể xem video YouTube của tôi nếu bạn quan tâm hơn đến định dạng trực quan

Hướng dẫn YouTube của tác giả

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Chúng tôi có rất nhiều biến thể và ứng dụng của bộ chứa từ điển trong Python và đôi khi, chúng tôi muốn thực hiện lọc các khóa trong từ điển, tôi. e chỉ trích xuất các khóa có trong vùng chứa cụ thể. Hãy thảo luận về những cách nhất định mà điều này có thể được thực hiện.  

    Phương pháp 1. Trích xuất các khóa cụ thể từ từ điển bằng cách sử dụng hiểu từ điển + mục[]

    Vấn đề này có thể được thực hiện bằng cách xây dựng lại bằng cách sử dụng các khóa được trích xuất thông qua chức năng mục muốn được lọc và chức năng từ điển tạo từ điển mong muốn

    Python3

    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    0
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    1
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    2
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    3
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    4
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    5
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    6
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    7
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    4
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    9
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    6
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    1
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    4
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    3
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    6
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    5
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    4
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    7
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    8

    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    9
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    0
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    1
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    2
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    3
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    4

    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    5
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    1
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    7
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    8
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    9
    def return_key[val]:
    for key, value in currency_dict.items[]:
    if value==val:
    return key
    return['Key Not Found']
    return_key['Dollar']Output: 'USD'
    0
    def return_key[val]:
    for key, value in currency_dict.items[]:
    if value==val:
    return key
    return['Key Not Found']
    return_key['Dollar']Output: 'USD'
    1

    def return_key[val]:
    for key, value in currency_dict.items[]:
    if value==val:
    return key
    return['Key Not Found']
    return_key['Dollar']Output: 'USD'
    2
    def return_key[val]:
    for key, value in currency_dict.items[]:
    if value==val:
    return key
    return['Key Not Found']
    return_key['Dollar']Output: 'USD'
    3
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    1
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    6
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    3
    def return_key[val]:
    for key, value in currency_dict.items[]:
    if value==val:
    return key
    return['Key Not Found']
    return_key['Dollar']Output: 'USD'
    7

    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    9
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    0
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    0
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    2
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    3
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    3

    đầu ra.  

    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    2

    Phương pháp 2. Trích xuất các khóa cụ thể từ từ điển bằng dict[]

    Hàm dict[] có thể được sử dụng để thực hiện tác vụ này bằng cách chuyển đổi logic được thực hiện bằng cách sử dụng khả năng hiểu danh sách thành một từ điển.  

    Python3

    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    0
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    1
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    2
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    3
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    4
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    5
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    6
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    7
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    4
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    9
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    6
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    1
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    4
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    3
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    6
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    5
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    4
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    7
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    8

    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    9
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    0
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    1
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    2
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    3
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    4

    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    5
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    1
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    21_______522
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    8
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    24
    def return_key[val]:
    for key, value in currency_dict.items[]:
    if value==val:
    return key
    return['Key Not Found']
    return_key['Dollar']Output: 'USD'
    0
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    26
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    3
    key_list=list[currency_dict.keys[]]
    val_list=list[currency_dict.values[]]
    ind=val_list.index[val]
    key_list[ind]
    Output: 'GBP'
    6
    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    1
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    20

    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    21
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    22
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    24
    def return_key[val]:
    for key, value in currency_dict.items[]:
    if value==val:
    return key
    return['Key Not Found']
    return_key['Dollar']Output: 'USD'
    0
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    25

    list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
    9
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    0
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    0
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    2
    def return_key[val]:
    for i in range[len[currency_dict]]:
    if val_list[i]==val:
    return key_list[i]
    return["Key Not Found"]
    return_key["Rupee"]Output: 'INR'
    3
    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    3

    đầu ra.  

    df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
    'curr':list[currency_dict.values[]]}]
    2

    Làm cách nào để trích xuất khóa từ điển trong Python?

    Phương pháp 1. Sử dụng danh sách. Bước 1. Chuyển đổi các khóa và giá trị từ điển thành danh sách. Bước 2. Tìm chỉ mục phù hợp từ danh sách giá trị. Bước 3. Sử dụng chỉ mục để tìm khóa thích hợp từ danh sách khóa.

    Tôi có thể lấy khóa từ từ điển từ giá trị Python không?

    Chúng tôi cũng có thể tìm nạp khóa từ một giá trị bằng cách so khớp tất cả các giá trị bằng lệnh. item[] rồi in khóa tương ứng với giá trị đã cho .

    Làm thế nào để bạn lấy một chìa khóa ra khỏi từ điển?

    Vì các cặp khóa-giá trị trong từ điển là các đối tượng nên bạn có thể xóa chúng bằng cách sử dụng từ khóa “del” . Từ khóa “del” được sử dụng để xóa một khóa tồn tại. Nó làm tăng KeyError nếu một khóa không có trong từ điển. Chúng tôi sử dụng ký hiệu lập chỉ mục để truy xuất mục từ từ điển mà chúng tôi muốn xóa.

    Làm cách nào để trích xuất khóa từ giá trị trong Python?

    Để lấy giá trị theo khóa, chỉ cần chỉ định khóa như sau. .

    d = {'key1'. 'aaa', 'phím2'. 'aaa', 'phím3'. 'bbb'} value = d['key1'] print[value] # aaa. nguồn. dict_get_key_from_value. py

    Bạn có thể lấy khóa của từ điển theo giá trị Python không?

    Lấy khóa từ giá trị bằng cách hiểu danh sách và items[] Để lấy khóa từ giá trị trong từ điển, sử dụng phương pháp hiểu danh sách và items[].

    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?

    Phương pháp #1. Sử dụng vòng lặp + phím[] . Đây có thể là một trong những phương pháp để thực hiện nhiệm vụ này.

    Chủ Đề