Đây là những gì bạn sẽ học trong hướng dẫn này. Bạn sẽ đề cập đến các đặc điểm cơ bản của từ điển Python và tìm hiểu cách truy cập và quản lý dữ liệu từ điển. Khi bạn đã hoàn thành hướng dẫn này, bạn sẽ hiểu rõ khi nào từ điển là kiểu dữ liệu thích hợp để sử dụng và cách thực hiện
Từ điển và danh sách chia sẻ các đặc điểm sau
Cả hai đều có thể thay đổi
Cả hai đều năng động. Chúng có thể phát triển và thu nhỏ khi cần thiết
Cả hai có thể được lồng vào nhau. Một danh sách có thể chứa một danh sách khác. Một từ điển có thể chứa một từ điển khác. Một từ điển cũng có thể chứa một danh sách và ngược lại
Từ điển khác với danh sách chủ yếu ở cách các phần tử được truy cập
Các phần tử danh sách được truy cập theo vị trí của chúng trong danh sách, thông qua lập chỉ mục
Các phần tử từ điển được truy cập thông qua các phím
Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Từ điển Python” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian
Lấy bài kiểm tra "
Định nghĩa một từ điển
Từ điển là triển khai của Python về cấu trúc dữ liệu thường được gọi là mảng kết hợp. Một từ điển bao gồm một tập hợp các cặp khóa-giá trị. Mỗi cặp khóa-giá trị ánh xạ khóa với giá trị được liên kết của nó
Bạn có thể định nghĩa một từ điển bằng cách đặt một danh sách các cặp khóa-giá trị được phân tách bằng dấu phẩy trong dấu ngoặc nhọn (
Khi bạn đã xác định một từ điển, bạn có thể hiển thị nội dung của nó, giống như bạn có thể làm cho một danh sách. Tất cả ba định nghĩa hiển thị ở trên xuất hiện như sau khi được hiển thị
Các mục trong từ điển hiển thị theo thứ tự chúng được xác định. Nhưng điều đó không liên quan khi lấy chúng. Các phần tử từ điển không được truy cập bằng chỉ mục số
>>>
>>> MLB_team[1]Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>MLB_team[1]KeyError: 1
Có lẽ bạn vẫn muốn sắp xếp từ điển của mình. Nếu đúng như vậy, hãy xem Sắp xếp từ điển Python. Giá trị, khóa và hơn thế nữa
Loại bỏ các quảng cáo
Truy cập các giá trị từ điển
Tất nhiên, các yếu tố từ điển phải được truy cập bằng cách nào đó. Nếu bạn không lấy chúng theo chỉ mục, thì làm cách nào để bạn lấy chúng?
Một giá trị được lấy từ một từ điển bằng cách chỉ định khóa tương ứng của nó trong dấu ngoặc vuông (
5 trông giống như một chỉ số bằng số, nhưng không phải
Sau này, bạn sẽ thấy trong hướng dẫn này rằng một đối tượng thuộc bất kỳ loại bất biến nào cũng có thể được sử dụng làm khóa từ điển. Theo đó, không có lý do gì bạn không thể sử dụng số nguyên
8, các số trong ngoặc vuông xuất hiện như thể chúng có thể là chỉ số. Nhưng chúng không liên quan gì đến thứ tự của các mục trong từ điển. Python đang diễn giải chúng dưới dạng các khóa từ điển. Nếu bạn xác định cùng một từ điển này theo thứ tự ngược lại, bạn vẫn nhận được các giá trị giống nhau khi sử dụng cùng các khóa
Ghi chú. Mặc dù quyền truy cập vào các mục trong từ điển không phụ thuộc vào thứ tự, nhưng Python đảm bảo rằng thứ tự của các mục trong từ điển được giữ nguyên. Khi được hiển thị, các mục sẽ xuất hiện theo thứ tự chúng được xác định và việc lặp qua các phím cũng sẽ diễn ra theo thứ tự đó. Các mục được thêm vào từ điển được thêm vào cuối. Nếu các mục bị xóa, thứ tự của các mục còn lại sẽ được giữ lại
Bạn chỉ có thể tin tưởng vào việc duy trì trật tự này rất gần đây. đó là. Tuy nhiên, đó là sự thật kể từ phiên bản 3. 6 cũng vậy—tình cờ là kết quả của việc triển khai nhưng không được đảm bảo bởi đặc tả ngôn ngữ
Loại bỏ các quảng cáo
Xây dựng từ điển tăng dần
Xác định một từ điển bằng cách sử dụng dấu ngoặc nhọn và danh sách các cặp khóa-giá trị, như được hiển thị ở trên, sẽ ổn nếu bạn biết trước tất cả các khóa và giá trị. Nhưng nếu bạn muốn xây dựng một từ điển nhanh chóng thì sao?
Bạn có thể bắt đầu bằng cách tạo một từ điển trống, được chỉ định bởi dấu ngoặc nhọn trống. Sau đó, bạn có thể thêm từng khóa và giá trị mới
9 lưu trữ các loại dữ liệu khác nhau cho một người
Bạn có thể sử dụng từ điển cho nhiều mục đích vì có rất ít giới hạn về khóa và giá trị được phép. Nhưng có một số. đọc tiếp
Hạn chế về khóa từ điển
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 vừa thấy ví dụ này, trong đó các đối tượng số nguyên, float và Boolean được sử dụng làm khóa
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
Ở trên, bạn đã thấy rằng khi bạn gán một giá trị cho khóa từ điển đã tồn tại, nó không thêm khóa lần thứ hai mà thay thế giá trị hiện có
Biến đi, Timberwolves. Bạn là một đội NBA. Sắp xếp
Thứ hai, khóa từ điển phải thuộc loại không thay đổi. Bạn đã thấy các ví dụ trong đó một số kiểu bất biến mà bạn quen thuộc—số nguyên, số float, chuỗi và Boolean—được dùng làm khóa từ điển
Một bộ dữ liệu cũng có thể là một khóa từ điển, bởi vì các bộ dữ liệu là bất biến
Lưu ý kỹ thuật. Tại sao thông báo lỗi nói "không thể xóa"?
Về mặt kỹ thuật, không hoàn toàn đúng khi nói rằng một đối tượng phải là bất biến để được sử dụng làm khóa từ điển. Chính xác hơn, một đối tượng phải là , có nghĩa là nó có thể được chuyển đến một hàm băm. A lấy dữ liệu có kích thước tùy ý và ánh xạ nó tới một giá trị có kích thước cố định tương đối đơn giản hơn được gọi là giá trị băm (hoặc đơn giản là hàm băm), được sử dụng để tra cứu và so sánh bảng
Hàm
>>> MLB_team[1]Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>MLB_team[1]KeyError: 1
2 tích hợp sẵn của Python trả về giá trị băm cho một đối tượng có thể băm và đưa ra một ngoại lệ cho một đối tượng không
Tất cả các loại bất biến tích hợp mà bạn đã học cho đến nay đều có thể băm được và các loại vùng chứa có thể thay đổi (danh sách và từ điển) thì không. Vì vậy, với các mục đích hiện tại, bạn có thể coi hashable và immutable ít nhiều đồng nghĩa với nhau
Trong các hướng dẫn trong tương lai, bạn sẽ gặp các đối tượng có thể thay đổi cũng có thể băm được
Loại bỏ các quảng cáo
Hạn chế về giá trị từ điển
Ngược lại, không có hạn chế về giá trị từ điển. nghĩa đen là không có gì cả. Một giá trị từ điển có thể là bất kỳ loại đối tượng nào mà Python hỗ trợ, bao gồm các loại có thể thay đổi như danh sách và từ điển cũng như các đối tượng do người dùng định nghĩa, mà bạn sẽ tìm hiểu về các hướng dẫn sắp tới
Cũng không có hạn chế đối với một giá trị cụ thể xuất hiện nhiều lần trong từ điển
Như với chuỗi và danh sách, có một số phương thức tích hợp có thể được gọi trên từ điển. Trên thực tế, trong một số trường hợp, phương thức danh sách và từ điển có cùng tên. (Trong phần thảo luận về lập trình hướng đối tượng, bạn sẽ thấy rằng các kiểu khác nhau có các phương thức có cùng tên là hoàn toàn có thể chấp nhận được. )
Sau đây là tổng quan về các phương pháp áp dụng cho từ điển
5 của từ điển Python cung cấp một cách thuận tiện để lấy giá trị của khóa từ từ điển mà không cần kiểm tra trước xem khóa đó có tồn tại hay không và không gây ra lỗi
6 thực sự trả về một thứ được gọi là đối tượng xem. Một đối tượng xem từ điển ít nhiều giống như một cửa sổ trên các khóa và giá trị. Đối với các mục đích thực tế, bạn có thể coi các phương thức này là danh sách trả về các khóa và giá trị của từ điểnLoại bỏ các quảng cáo
Trong hướng dẫn này, bạn đã trình bày các thuộc tính cơ bản của từ điển Python và học cách truy cập và thao tác dữ liệu từ điển
Danh sách và từ điển là hai trong số các loại Python được sử dụng thường xuyên nhất. Như bạn đã thấy, chúng có một số điểm tương đồng, nhưng khác nhau về cách các phần tử của chúng được truy cập. Các phần tử danh sách được truy cập theo chỉ mục số dựa trên thứ tự và các phần tử từ điển được truy cập bằng khóa
Do sự khác biệt này, danh sách và từ điển có xu hướng phù hợp với các trường hợp khác nhau. Bây giờ bạn sẽ có một cảm giác tốt, nếu một trong hai, sẽ là tốt nhất cho một tình huống nhất định
Tiếp theo bạn sẽ tìm hiểu về bộ Python. Tập hợp là một kiểu dữ liệu hỗn hợp khác, nhưng nó hoàn toàn khác với danh sách hoặc từ điển
Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Từ điển Python” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian
Lấy bài kiểm tra "
« Danh sách và bộ dữ liệu trong Python
Bộ trong Python »
Đánh dấu là đã hoàn thành
Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Từ điển trong Python
🐍 Thủ thuật Python 💌
Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python
Gửi cho tôi thủ thuật Python »
Giới thiệu về John Sturtz
John là một Pythonista cuồng nhiệt và là thành viên của nhóm hướng dẫn Real Python
» Thông tin thêm về John
Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là
Aldren
Joanna
Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Chuyên gia Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực
Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia
Nâng cao kỹ năng Python của bạn »
Bạn nghĩ sao?
Đánh giá bài viết này
Tweet Chia sẻ Chia sẻ Email
Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?
Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi
Bạn có thể đặt một từ điển trong một lớp Python không?
Nếu bạn muốn sử dụng từ điển trên toàn cầu trong một lớp, thì bạn cần xác định từ đó trong phần nơi bạn sử dụng lớp của mình . nếu bạn đang sử dụng lớp của mình trong chính, thì hãy xác định nó ở đó. Theo mặc định, một từ điển hoặc danh sách o là toàn cầu. lớp cửa hàng. .
Thuộc tính __ dict __ trong Python là gì?
Tất cả đối tượng trong Python đều có thuộc tính __dict__, là đối tượng từ điển chứa tất cả các thuộc tính được xác định cho chính đối tượng đó . Việc ánh xạ các thuộc tính với các giá trị của nó được thực hiện để tạo từ điển.
__ dict __ trong lớp là gì?
__dict__ là Từ điển hoặc đối tượng ánh xạ khác được sử dụng để lưu trữ các thuộc tính (có thể ghi) của đối tượng . Hay nói một cách đơn giản, mọi đối tượng trong python đều có một thuộc tính được ký hiệu là __dict__. Và đối tượng này chứa tất cả các thuộc tính được xác định cho đối tượng.
Làm cách nào để chuyển đổi dict sang lớp Python?
Chúng tôi đang gọi một hàm ở đây là Dict2Class lấy từ điển của chúng tôi làm đầu vào và chuyển đổi nó thành lớp . Sau đó, chúng tôi lặp lại từ điển của mình bằng cách sử dụng hàm setattr() để thêm từng khóa làm thuộc tính cho lớp. setattr() được sử dụng để gán giá trị cho thuộc tính đối tượng.