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
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[]]0
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]1
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]2
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]3
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]4
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]5
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]6
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]7
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]4
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]9
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]6
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
1key_list=list[currency_dict.keys[]]4
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
3key_list=list[currency_dict.keys[]]6
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
5key_list=list[currency_dict.keys[]]4
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
7list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
8list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
9def return_key[val]:0
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'
def return_key[val]:1
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'
def return_key[val]:2
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'
def return_key[val]:3
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'
def return_key[val]:4
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'
def return_key[val]:5
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'
key_list=list[currency_dict.keys[]]1
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
def return_key[val]:7
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'
def return_key[val]:8
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'
def return_key[val]:9
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'
def return_key[val]:0
for key, value in currency_dict.items[]:
if value==val:
return key
return['Key Not Found']return_key['Dollar']Output: 'USD'
def return_key[val]:1
for key, value in currency_dict.items[]:
if value==val:
return key
return['Key Not Found']return_key['Dollar']Output: 'USD'
def return_key[val]:2
for key, value in currency_dict.items[]:
if value==val:
return key
return['Key Not Found']return_key['Dollar']Output: 'USD'
def return_key[val]:3
for key, value in currency_dict.items[]:
if value==val:
return key
return['Key Not Found']return_key['Dollar']Output: 'USD'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
1key_list=list[currency_dict.keys[]]6
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]3
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
def return_key[val]:7
for key, value in currency_dict.items[]:
if value==val:
return key
return['Key Not Found']return_key['Dollar']Output: 'USD'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
9def return_key[val]:0
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'
df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
'curr':list[currency_dict.values[]]}]
0 def return_key[val]:2
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'
def return_key[val]:3
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'
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[]]}]
2Phươ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[]]0
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]1
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]2
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]3
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]4
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]5
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]6
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]7
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]4
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]9
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]6
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
1key_list=list[currency_dict.keys[]]4
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
3key_list=list[currency_dict.keys[]]6
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
5key_list=list[currency_dict.keys[]]4
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
7list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
8list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
9def return_key[val]:0
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'
def return_key[val]:1
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'
def return_key[val]:2
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'
def return_key[val]:3
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'
def return_key[val]:4
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'
def return_key[val]:5
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'
key_list=list[currency_dict.keys[]]1
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
'curr':list[currency_dict.values[]]}]
21_______522def return_key[val]:8
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'
df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
'curr':list[currency_dict.values[]]}]
24def return_key[val]:0
for key, value in currency_dict.items[]:
if value==val:
return key
return['Key Not Found']return_key['Dollar']Output: 'USD'
df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
'curr':list[currency_dict.values[]]}]
26key_list=list[currency_dict.keys[]]3
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
key_list=list[currency_dict.keys[]]6
val_list=list[currency_dict.values[]]
ind=val_list.index[val]
key_list[ind]Output: 'GBP'
list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
1df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
'curr':list[currency_dict.values[]]}]
20df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
'curr':list[currency_dict.values[]]}]
21df=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[]]}]
24def return_key[val]:0
for key, value in currency_dict.items[]:
if value==val:
return key
return['Key Not Found']return_key['Dollar']Output: 'USD'
df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
'curr':list[currency_dict.values[]]}]
25list[currency_dict.keys[]][list[currency_dict.values[]].index[val]]
9def return_key[val]:0
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'
df=pd.DataFrame[{'abbr':list[currency_dict.keys[]],
'curr':list[currency_dict.values[]]}]
0 def return_key[val]:2
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'
def return_key[val]:3
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'
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[]]}]
2Là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