Bạn có thể lấy khóa trong từ điển Python không?

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

Hầu hết mọi loại giá trị đều có thể được sử dụng làm khóa từ điển trong Python. Bạn thậm chí có thể sử dụng các đối tượng tích hợp sẵn như kiểu và hàm. Tuy nhiên, có một số hạn chế mà các khóa từ điển phải tuân theo

Đầu tiên, một khóa nhất định chỉ có thể xuất hiện trong từ điển một lần. Khóa trùng lặp không được phép. Từ điển ánh xạ mỗi khóa thành một giá trị tương ứng, vì vậy sẽ không hợp lý khi ánh xạ một khóa cụ thể nhiều lần. Nếu bạn chỉ định một khóa lần thứ hai trong quá trình tạo từ điển lần đầu, thì lần xuất hiện thứ hai sẽ ghi đè lần đầu tiên

Thứ hai, khóa từ điển phải thuộc loại không thay đổi. Ví dụ: bạn có thể sử dụng số nguyên, số float, chuỗi hoặc Boolean làm khóa từ điển. Tuy nhiên, cả danh sách và từ điển khác đều không thể đóng vai trò là khóa từ điển vì danh sách và từ điển có thể thay đổi. Mặt khác, các giá trị có thể là bất kỳ loại nào và có thể được sử dụng nhiều lần

Joshua Dougas trên

Tôi đã rất ngạc nhiên khi thông báo lỗi cho các khóa danh sách hoàn toàn không đề cập đến khả năng thay đổi

Tôi đã chơi xung quanh và thấy rằng các đối tượng có thể thay đổi thực sự hoạt động như các khóa, miễn là đối tượng có thể băm được. Chúng ta có thể tạo một danh sách hậu duệ có thể băm được bằng cách triển khai phương thức hash[] bằng cách sử dụng một số sơ đồ tùy ý

Tôi đã làm điều này bên dưới và thấy rằng các đối tượng có thể thay đổi trên thực tế hoạt động như các khóa từ điển, chỉ là việc sử dụng các khóa có thể thay đổi có thể dẫn đến kết quả không mong muốn

Ví dụ: nếu bạn thêm một mục bằng khóa có thể thay đổi và sau đó thay đổi khóa không thể đảo ngược, thì bạn có nguy cơ 'mất' giá trị được liên kết. Tôi chắc chắn rằng có một loạt các cảnh báo khác, chẳng hạn như va chạm, cũng như

Mỗi khóa được phân tách khỏi giá trị của nó bằng dấu hai chấm [. ], các mục được phân tách bằng dấu phẩy và toàn bộ nội dung được đặt trong dấu ngoặc nhọn. Một từ điển trống không có bất kỳ mục nào được viết chỉ bằng hai dấu ngoặc nhọn, như thế này. {}

Các khóa là duy nhất trong một từ điển trong khi các giá trị có thể không. Các giá trị của từ điển có thể thuộc bất kỳ loại nào, nhưng các khóa phải thuộc loại dữ liệu bất biến, chẳng hạn như chuỗi, số hoặc bộ dữ liệu

Truy cập các giá trị trong từ điển

Để truy cập các phần tử từ điển, bạn có thể sử dụng dấu ngoặc vuông quen thuộc cùng với khóa để lấy giá trị của nó. Sau đây là một ví dụ đơn giản -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Name']: ", dict['Name']
print "dict['Age']: ", dict['Age']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

dict['Name']:  Zara
dict['Age']:  7

Nếu chúng tôi cố gắng truy cập một mục dữ liệu bằng một khóa không phải là một phần của từ điển, chúng tôi sẽ gặp lỗi như sau -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
print "dict['Alice']: ", dict['Alice']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

dict['Alice']:
Traceback [most recent call last]:
   File "test.py", line 4, in 
      print "dict['Alice']: ", dict['Alice'];
KeyError: 'Alice'

cập nhật từ điển

Bạn có thể cập nhật từ điển bằng cách thêm mục nhập mới hoặc cặp khóa-giá trị, sửa đổi mục nhập hiện có hoặc xóa mục nhập hiện có như minh họa bên dưới trong ví dụ đơn giản –

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
dict['Age'] = 8; # update existing entry
dict['School'] = "DPS School"; # Add new entry

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

dict['Age']:  8
dict['School']:  DPS School

Xóa các thành phần từ điển

Bạn có thể xóa các thành phần từ điển riêng lẻ hoặc xóa toàn bộ nội dung của từ điển. Bạn cũng có thể xóa toàn bộ từ điển trong một thao tác

Để xóa toàn bộ từ điển một cách rõ ràng, chỉ cần sử dụng câu lệnh del. Sau đây là một ví dụ đơn giản -

#!/usr/bin/python

dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
del dict['Name']; # remove entry with key 'Name'
dict.clear[];     # remove all entries in dict
del dict ;        # delete entire dictionary

print "dict['Age']: ", dict['Age']
print "dict['School']: ", dict['School']

Điều này tạo ra kết quả sau. Lưu ý rằng một ngoại lệ được đưa ra bởi vì sau khi từ điển del dict không còn tồn tại nữa -

dict['Age']:
Traceback [most recent call last]:
   File "test.py", line 8, in 
      print "dict['Age']: ", dict['Age'];
TypeError: 'type' object is unsubscriptable

Lưu ý - phương thức del[] được thảo luận trong phần tiếp theo

Thuộc tính của khóa từ điển

Giá trị từ điển không có hạn chế. Chúng có thể là bất kỳ đối tượng Python tùy ý nào, đối tượng tiêu chuẩn hoặc đối tượng do người dùng định nghĩa. Tuy nhiên, điều tương tự cũng không đúng với các phím

Có hai điểm quan trọng cần nhớ về khóa từ điển -

[a] Không được phép nhập nhiều hơn một mục trên mỗi khóa. Điều đó có nghĩa là không cho phép khóa trùng lặp. Khi gặp phải các khóa trùng lặp trong quá trình gán, nhiệm vụ cuối cùng sẽ thắng. Ví dụ -

________số 8_______

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

dict['Name']:  Manni

[b] Khóa phải là bất biến. Điều đó có nghĩa là bạn có thể sử dụng chuỗi, số hoặc bộ dữ liệu làm khóa từ điển nhưng không được phép sử dụng những thứ như ['key']. Sau đây là một ví dụ đơn giản -

dict['Name']:  Zara
dict['Age']:  7
0

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau -

dict['Name']:  Zara
dict['Age']:  7
1

Các chức năng & phương pháp từ điển tích hợp

Python bao gồm các chức năng từ điển sau -

Sr. Không. Chức năng với Description1cmp[dict1, dict2]

So sánh các yếu tố của cả dict

2len[chính tả]

Cung cấp tổng chiều dài của từ điển. Điều này sẽ bằng với số lượng mục trong từ điển

3str[chính tả]

Tạo một biểu diễn chuỗi có thể in được của một từ điển

4 loại [biến]

Trả về kiểu của biến đã truyền. Nếu biến được truyền là từ điển thì nó sẽ trả về kiểu từ điển

Làm cách nào để lấy khóa từ giá trị trong từ điển bằng Python?

Lấy khóa từ giá trị trong từ điển bằng Python .
d = {'key1'. 'aaa', 'phím2'. 'aaa', 'phím3'. 'bbb'} value = d['key1'] print[value] # aaa. nguồn. dict_get_key_from_value. py
d = {'key1'. 'aaa', 'phím2'. 'aaa', 'phím3'. 'bbb'}.
khóa = [k cho k, v trong d. .
def get_keys_from_value[d, val]. return [k cho k, v trong d

Tôi có thể in khóa của Từ điển Python không?

Chính tả của Python. phương thức keys[] có thể được sử dụng để truy xuất các khóa từ điển, sau đó có thể in các khóa này bằng hàm print[] . Một đối tượng xem hiển thị danh sách mọi khóa trong từ điển là kết quả của dict.

Làm cách nào tôi có thể xem các phím trong từ điển?

Các phương thức dict. keys[] và dict. values[] trả về danh sách các khóa hoặc giá trị một cách rõ ràng . Ngoài ra còn có một items[] trả về danh sách các bộ dữ liệu [khóa, giá trị], đây là cách hiệu quả nhất để kiểm tra tất cả dữ liệu giá trị khóa trong từ điển.

Chủ Đề