Từ điển Python có thể được lồng vào nhau không?

Từ điển lồng nhau trong Python là một từ điển trong một từ điển khác. Điều này cho phép bạn lưu trữ dữ liệu bằng cách sử dụng cấu trúc ánh xạ khóa-giá trị trong một từ điển hiện có

Khi làm việc với từ điển trong Python, bạn có thể gặp tình huống trong đó một từ điển chứa một từ điển khác

Từ điển Python có thể được lồng vào nhau không?
Từ điển Python có thể được lồng vào nhau không?

Tìm trận đấu Bootcamp của bạn

  • Career Karma kết hợp bạn với các bootcamp công nghệ hàng đầu
  • Truy cập học bổng độc quyền và các khóa học chuẩn bị
Chọn sở thích của bạn
Tên đầu tiên

Họ

E-mail

Số điện thoại


Bằng cách tiếp tục, bạn đồng ý với Điều khoản dịch vụ và Chính sách quyền riêng tư của chúng tôi và bạn đồng ý nhận các ưu đãi và cơ hội từ Career Karma qua điện thoại, tin nhắn văn bản và email

Cấu trúc dữ liệu này thường được gọi là từ điển lồng nhau và có nhiều trường hợp sử dụng tiềm năng trong mã Python

Hướng dẫn này sẽ thảo luận về những điều cơ bản của từ điển lồng nhau trong Python. Chúng ta sẽ xem qua một số ví dụ để bạn có thể tìm hiểu cách tạo và sửa đổi từ điển lồng nhau

Ôn tập từ điển Python

Từ điển là kiểu dữ liệu ánh xạ của Python. Từ điển Python liên kết—hoặc ánh xạ—các khóa với giá trị và cung cấp cách lưu trữ dữ liệu hiệu quả

Khi một khóa được ánh xạ tới một giá trị, bạn có thể truy xuất dữ liệu được lưu trữ trong giá trị đó bằng cách tham chiếu khóa. Vì vậy, theo một nghĩa nào đó, chìa khóa đóng vai trò như một cái nhãn. Dưới đây là ví dụ về từ điển lưu trữ giá của các hương vị kem được bán tại một cửa hàng kem địa phương, The Frozen Spoon

ice_cream_flavors = {
	"Vanilla": 0.50,
	"Chocolate": 0.50,
	"Cookies and Cream": 0.75,
	"Strawberry": 0.65,
	"Buttered Pecan": 0.90
}

Chìa khóa trong từ điển này là tên các loại kem của chúng tôi (tôi. e. “Vanilla”), và các giá trị là giá mỗi muỗng của mỗi loại kem

Từ điển lồng nhau của Python

Từ điển lồng nhau trong Python là từ điển bên trong từ điển. Chúng được sử dụng để thể hiện dữ liệu từ điển trong một từ điển khác. Bạn có thể lồng bao nhiêu từ điển trong một từ điển tùy thích

Các từ điển lồng nhau rất hữu ích nếu bạn muốn lưu trữ nhiều loại từ điển thành phần trong một từ điển lớn

Hãy xem qua một ví dụ để minh họa cách thức hoạt động của các từ điển lồng nhau. Giả sử chúng ta muốn tạo một từ điển lưu trữ các từ điển về từng hương vị kem được bán tại The Frozen Spoon. Mỗi từ điển trong từ điển lớn của chúng tôi nên liệt kê

  • Tên của kem
  • Giá của nó
  • Có bao nhiêu pint trong kho

Đây là giao diện của một từ điển lồng nhau lưu trữ dữ liệu này

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

Trong mã của chúng tôi, chúng tôi đã khai báo một từ điển lớn có tên là ice_cream_flavors. Từ điển này chứa ba từ điển, mỗi từ điển lưu trữ thông tin về một hương vị kem cụ thể

» THÊM.   Biến Python. Hướng dẫn cách thực hiện

Nếu chúng tôi không sử dụng từ điển lồng nhau, chúng tôi sẽ phải lưu trữ từng từ điển này trong các biến riêng biệt. Điều này là phản trực giác vì mỗi từ điển lưu trữ thông tin về hương vị kem

Truy cập các mục trong từ điển lồng nhau

Để truy cập một mục trong từ điển lồng nhau, chúng ta có thể sử dụng cú pháp lập chỉ mục

Giả sử chúng tôi muốn lấy giá của kem với giá trị chỉ số 0 trong từ điển của chúng tôi. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

print(ice_cream_flavors[0]["price"])
print(ice_cream_flavors[0]["flavor"])

mã của chúng tôi trả về

0.50
Vanilla

Trong mã này, trước tiên chúng tôi chỉ định khóa mục có giá trị trong từ điển lớn mà chúng tôi muốn truy xuất. Trong trường hợp này, chúng tôi muốn truy cập bản ghi có giá trị chỉ mục 0

Sau đó, chúng tôi chỉ định tên của mục trong từ điển bên trong mà chúng tôi muốn truy xuất. Trong trường hợp này, chúng tôi muốn truy xuất giá kem và hương vị. Vì vậy, chúng tôi đã chỉ định giá và hương vị trong cả hai câu lệnh print() của chúng tôi

Python từ điển lồng nhau. Thêm phần tử

Để thêm một phần tử vào từ điển lồng nhau, chúng ta có thể sử dụng cùng một cú pháp mà chúng ta đã sử dụng để sửa đổi một mục. Không có phương pháp nào bạn nên sử dụng để thêm một mục vào từ điển lồng nhau. Bạn cần sử dụng toán tử gán

Cú pháp để thêm một mục như sau

dictionary_name[new_key_name] = new_value

Giả sử chúng ta có một từ điển lưu trữ thông tin về kem vani để bán. Chúng tôi muốn theo dõi xem có giảm giá kem không. Chúng tôi có thể làm điều này bằng cách sử dụng đoạn mã sau

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

ice_cream_flavors[0]["discount"] = True

print(ice_cream_flavors[0])

Hãy chạy mã của chúng tôi và xem điều gì sẽ xảy ra

{'flavor': 'Vanilla', 'price': 0.5, 'pints': 20, 'discount': True}

Từ điển của chúng tôi được lưu trữ trong biến Python “ice_cream_flavors”

» THÊM.   Lỗi loại Python. Đối tượng ‘str’ không thể hiểu là số nguyên Giải pháp

Chúng tôi đã thêm một từ khóa gọi là chiết khấu vào từ điển. Vị trí chỉ mục của khóa này là 0. Chúng tôi đặt giá trị của khóa này thành True. Sau đó, chúng tôi đã in ra từ điển với giá trị chỉ mục 0 trong từ điển lồng nhau ice_cream_flavors của chúng tôi. Điều này cho thấy khóa giảm giá của chúng tôi đã được thêm vào

Chúng ta có thể sử dụng cú pháp này để cập nhật một phần tử trong từ điển hiện có. Giả sử chúng tôi muốn thay đổi giá kem sô cô la của mình thành $0. 45 mỗi muỗng. Chúng tôi có thể làm như vậy bằng cách sử dụng mã này

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

ice_cream_flavors[1]["price"] = 0.45

print(ice_cream_flavors[1])

mã của chúng tôi trả về

________số 8_______

Chúng tôi đã thay đổi giá trị của khóa giá cho món kem sô cô la của mình thành $0. 45

Từ điển Python có thể được lồng vào nhau không?
Từ điển Python có thể được lồng vào nhau không?

"Career Karma bước vào cuộc đời tôi khi tôi cần nó nhất và nhanh chóng giúp tôi phù hợp với bootcamp. Hai tháng sau khi tốt nghiệp, tôi đã tìm được công việc mơ ước phù hợp với giá trị và mục tiêu của mình trong cuộc sống. "

Venus, Kỹ sư phần mềm tại Rockbot

Find Your Bootcamp Match

Để làm như vậy, chúng tôi đã chỉ định giá trị chỉ mục của từ điển có giá trị giá mà chúng tôi muốn thay đổi thành 1. Giá trị này chứa thông tin về kem sô cô la trong từ điển của chúng tôi. Sau đó, chúng tôi đã gán một giá trị mới cho khóa giá

Python từ điển lồng nhau. Xóa phần tử

Để xóa một mục được lưu trữ trong một từ điển lồng nhau, chúng ta có thể sử dụng câu lệnh del. Câu lệnh del cho phép bạn xóa một đối tượng. del được viết giống như câu lệnh ngắt Python, trên dòng riêng của nó, theo sau là mục trong từ điển mà bạn muốn xóa

Giả sử tạm thời chúng tôi không còn cung cấp bánh quy và kem tại cửa hàng của chúng tôi nữa. Tủ đông lưu trữ bánh quy và kem của chúng tôi đã ngừng hoạt động và hàng hóa bị tan chảy

Chúng tôi có thể xóa kem này khỏi từ điển lồng nhau của mình bằng mã sau

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}

del ice_cream_flavors[2]

print(ice_cream_flavors)

mã của chúng tôi trả về

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}
0

Trong mã của chúng tôi, chúng tôi đã sử dụng câu lệnh del để xóa giá trị trong từ điển lồng nhau có khóa bằng 2. Như bạn có thể thấy, thao tác này đã xóa mục dành cho Bánh quy và Kem khỏi từ điển lồng nhau của chúng tôi

» THÊM.   Xóa n ký tự đầu tiên khỏi chuỗi trong Python

Lặp lại thông qua từ điển lồng nhau của Python

Bây giờ, giả sử chúng ta muốn in ra nội dung của từng từ điển trong từ điển lồng nhau của chúng ta ra bàn điều khiển. Làm thế nào chúng ta có thể hoàn thành nhiệm vụ này?

Đó là một câu hỏi tuyệt vời. Để in ra nội dung của từ điển lồng nhau của chúng ta, chúng ta có thể lặp qua nó bằng vòng lặp Python for. Chúng tôi cũng sẽ sử dụng phương thức Python dictionary items() để truy xuất danh sách các khóa và giá trị trong từ điển của chúng tôi

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}
1

mã của chúng tôi trả về

ice_cream_flavors = {
	0: { "flavor": "Vanilla", "price": 0.50, "pints": 20 },
	1: { "flavor": "Chocolate", "price": 0.50, "pints": 31 },
2: { "flavor": "Cookies and Cream", "price": 0.75, "pints": 14 }
}
2

Hãy chia nhỏ mã của chúng tôi. Đầu tiên, chúng tôi đã xác định từ điển lồng nhau về các hương vị kem

Sau đó, chúng tôi đã xác định vòng lặp for đi qua từng khóa và giá trị trong từ điển ice_cream_flavors. Vòng lặp này sử dụng. items() để tạo danh sách tất cả các khóa và giá trị trong từ điển ice_cream_flavors của chúng tôi, qua đó vòng lặp có thể lặp lại

Sau đó, chúng tôi in Kem. theo sau là khóa liên kết với một loại kem cụ thể

Tiếp theo, chúng tôi sử dụng một vòng lặp for khác để lặp qua mọi mục trong mỗi giá trị trong từ điển lồng nhau của chúng tôi. Điều này đề cập đến từng mục bên trong trong từ điển lồng nhau của chúng tôi (chẳng hạn như mục cho vani và sô cô la). Vòng lặp này in ra tên của từng khóa trong từ điển bên trong của chúng tôi, theo sau là dấu hai chấm, sau đó là giá trị được liên kết với khóa đó

Phần kết luận

Từ điển lồng nhau cho phép bạn lưu trữ từ điển bên trong từ điển trong Python

Hướng dẫn này đã thảo luận, có tham chiếu đến các ví dụ, làm thế nào để

  • Tạo một từ điển lồng nhau
  • Thêm phần tử vào và cập nhật phần tử trong từ điển lồng nhau
  • Xóa các phần tử khỏi từ điển lồng nhau
  • Lặp lại thông qua một từ điển lồng nhau

Để tìm hiểu thêm về viết mã bằng Python, hãy đọc hướng dẫn Cách viết mã bằng Python của chúng tôi



Về chúng tôi. Career Karma là một nền tảng được thiết kế để giúp người tìm việc tìm kiếm, nghiên cứu và kết nối với các chương trình đào tạo việc làm để thăng tiến trong sự nghiệp của họ. Tìm hiểu về ấn phẩm CK

Từ điển có thể được lồng nhau?

Một từ điển có thể chứa các từ điển , đây được gọi là các từ điển lồng nhau.

Từ điển trong Python có thể được lồng vào bất kỳ độ sâu nào không?

Từ điển có thể được lồng vào bất kỳ độ sâu nào . Từ điển được truy cập bằng khóa. Các mục được truy cập theo vị trí của chúng trong từ điển. Một từ điển có thể chứa bất kỳ loại đối tượng nào ngoại trừ một từ điển khác.

Bạn có thể lồng một từ điển Python bao nhiêu lần?

Bạn có thể lồng bao nhiêu từ điển vào một từ điển tùy thích . Các từ điển lồng nhau rất hữu ích nếu bạn muốn lưu trữ nhiều loại từ điển thành phần trong một từ điển lớn.

Làm cách nào để lấy các giá trị từ điển lồng nhau trong Python?

Truy cập các mục từ điển lồng nhau . Phương thức get() trả về giá trị cho khóa nếu khóa có trong từ điển, ngược lại, nó trả về Không có. using the special dictionary get() method. The get() method returns the value for the key if the key is in the dictionary, otherwise, it returns None.