Từ điển trong python được triển khai như thế nào?

Từ điển Python là một bộ sưu tập có thứ tự (bắt đầu từ Python 3. 7) mặt hàng. Mỗi mục của từ điển có một cặp

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
1

Từ điển được tối ưu hóa để truy xuất các giá trị khi biết khóa


Tạo từ điển Python

Tạo một từ điển đơn giản như đặt các mục bên trong dấu ngoặc nhọn

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
2 được phân tách bằng dấu phẩy

Một mục có một

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
3 và một
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
4 tương ứng được thể hiện dưới dạng một cặp (khóa. giá trị)

Mặc dù các giá trị có thể thuộc bất kỳ loại dữ liệu nào và có thể lặp lại, nhưng các khóa phải thuộc loại không thay đổi (chuỗi, số hoặc bộ có các phần tử không thay đổi) và phải là duy nhất

# empty dictionary
my_dict = {}

# dictionary with integer keys
my_dict = {1: 'apple', 2: 'ball'}

# dictionary with mixed keys
my_dict = {'name': 'John', 1: [2, 4, 3]}

# using dict()
my_dict = dict({1:'apple', 2:'ball'})

# from sequence having each item as a pair
my_dict = dict([(1,'apple'), (2,'ball')])

Như bạn có thể thấy ở trên, chúng ta cũng có thể tạo một từ điển bằng hàm

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
5 tích hợp


Truy cập các phần tử từ từ điển

Trong khi lập chỉ mục được sử dụng với các loại dữ liệu khác để truy cập các giá trị, từ điển sử dụng

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
6. Các phím có thể được sử dụng bên trong dấu ngoặc vuông
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
7 hoặc bằng phương pháp
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
8

Nếu chúng ta sử dụng dấu ngoặc vuông

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
7, thì
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
00 được nâng lên trong trường hợp không tìm thấy khóa trong từ điển. Mặt khác, phương thức
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
8 trả về
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
02 nếu không tìm thấy khóa

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
3

đầu ra

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'

Thay đổi và thêm các thành phần từ điển

Từ điển có thể thay đổi. Chúng ta có thể thêm các mục mới hoặc thay đổi giá trị của các mục hiện có bằng toán tử gán

Nếu khóa đã có, thì giá trị hiện có sẽ được cập nhật. Trong trường hợp không có khóa, một khóa mới (khóa. value) được thêm vào từ điển

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
0

đầu ra

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
6

Xóa các phần tử khỏi Từ điển

Chúng tôi có thể xóa một mục cụ thể trong từ điển bằng cách sử dụng phương pháp

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
03. Phương pháp này loại bỏ một mục với
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
3 được cung cấp và trả về
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
4

Phương thức

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
06 có thể được sử dụng để xóa và trả về một cặp mục tùy ý
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
07 từ từ điển. Có thể xóa tất cả các mục cùng một lúc, sử dụng phương pháp
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
08

Chúng tôi cũng có thể sử dụng từ khóa

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
09 để xóa các mục riêng lẻ hoặc toàn bộ từ điển

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
4

đầu ra

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
5

Phương pháp từ điển Python

Các phương pháp có sẵn với một từ điển được lập bảng dưới đây. Một số trong số chúng đã được sử dụng trong các ví dụ trên

MethodDescriptionclear() Xóa tất cả các mục khỏi từ điển. copy() Trả về một bản sao nông của từ điển. fromkeys(seq[, v])Trả về một từ điển mới với các khóa từ seq và giá trị bằng v (mặc định là

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
02). get(key[,d])Trả về giá trị của key. Nếu khóa không tồn tại, trả về d (mặc định là
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
02). items()Trả về một đối tượng mới của các mục từ điển ở định dạng (key, value). keys()Trả về một đối tượng mới của keys của dictionary. pop(key[,d])Xóa mục bằng khóa và trả về giá trị của nó hoặc d nếu không tìm thấy khóa. Nếu d không được cung cấp và không tìm thấy khóa, nó sẽ tăng
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
00. popitem() Xóa và trả về một mục tùy ý (khóa, giá trị). Tăng
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
00 nếu từ điển trống. setdefault(key[,d])Trả về giá trị tương ứng nếu key có trong từ điển. Nếu không, hãy chèn khóa có giá trị d và trả về d (mặc định là
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
02). update([other])Cập nhật từ điển với các cặp khóa/giá trị từ khác, ghi đè lên các khóa hiện có. các giá trị () Trả về một đối tượng mới của các giá trị của từ điển

Dưới đây là một vài trường hợp sử dụng ví dụ của các phương pháp này

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
1

đầu ra

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
2

Hiểu từ điển Python

Hiểu từ điển là một cách đơn giản và ngắn gọn để tạo một từ điển mới từ một lần lặp trong Python

Việc hiểu từ điển bao gồm một cặp biểu thức (chính. value) theo sau là câu lệnh

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
65 bên trong dấu ngoặc nhọn
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
2

Dưới đây là một ví dụ để tạo một từ điển với mỗi mục là một cặp số và hình vuông của nó

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
5

đầu ra

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
30

Mã này tương đương với

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
31

đầu ra

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
30

Việc hiểu từ điển có thể tùy ý chứa thêm các câu lệnh for hoặc if

Một câu lệnh

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
67 tùy chọn có thể lọc ra các mục để tạo từ điển mới

Dưới đây là một số ví dụ để tạo một từ điển chỉ với các mục lẻ

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
33

đầu ra

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
34

Để tìm hiểu thêm về cách hiểu từ điển, hãy truy cập phần Hiểu từ điển Python


Các hoạt động từ điển khác

Bài kiểm tra tư cách thành viên từ điển

Chúng ta có thể kiểm tra xem một

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
3 có trong từ điển hay không bằng cách sử dụng từ khóa
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
69. Lưu ý rằng bài kiểm tra tư cách thành viên chỉ dành cho
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
6 chứ không dành cho
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
41

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
35

đầu ra

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
36

Lặp lại thông qua một từ điển

Chúng ta có thể lặp qua từng khóa trong từ điển bằng vòng lặp

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
65

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
37

đầu ra

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
38

Chức năng tích hợp từ điển

Các chức năng tích hợp như

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
43,
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
44,
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
45,
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
46,
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
47, v.v. thường được sử dụng với từ điển để thực hiện các tác vụ khác nhau

FunctionDescriptionall()Trả về

Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
48 nếu tất cả các khóa của từ điển là Đúng (hoặc nếu từ điển trống). bất kỳ () Trả về
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
48 nếu bất kỳ khóa nào của từ điển là đúng. Nếu từ điển trống, trả về
Jack
26
None
Traceback (most recent call last):
  File "", line 15, in 
    print(my_dict['address'])
KeyError: 'address'
50. len()Trả về độ dài (số lượng mục) trong từ điển. cmp() So sánh các mục của hai từ điển. (Không có trong Python 3)sắp xếp()Trả về danh sách khóa được sắp xếp mới trong từ điển

Làm thế nào là dict thực hiện nội bộ?

Từ điển bao gồm một số nhóm. Mỗi nhóm chứa mã băm của đối tượng chứa cặp khóa-giá trị. Một con trỏ tới đối tượng khóa và một con trỏ tới đối tượng giá trị.

Làm thế nào là từ điển in Python?

Chính tả của Python. có thể sử dụng phương thức values() để truy xuất các giá trị từ điển, sau đó có thể in các giá trị này bằng cách sử dụng hàm print() .

Python lưu trữ dữ liệu trong từ điển như thế nào?

Danh sách Python lưu trữ một tập hợp các đối tượng theo trình tự có thứ tự. Ngược lại, từ điển lưu trữ các đối tượng trong một bộ sưu tập không có thứ tự . Tuy nhiên, từ điển cho phép một chương trình truy cập bất kỳ thành viên nào của bộ sưu tập bằng cách sử dụng khóa - có thể là một chuỗi con người có thể đọc được.

Hashmap được triển khai bằng Python như thế nào?

Bản đồ băm hoặc Bảng băm trong Python được triển khai thông qua loại dữ liệu tích hợp sẵn . Các khóa của loại dữ liệu tích hợp được tạo với sự trợ giúp của hàm băm. Các phần tử từ điển không được thiết kế để sắp xếp theo thứ tự và do đó chúng có thể dễ dàng thay đổi.