Từ điển Python cho các biến
Những gì chúng tôi đã làm ở đây là tạo một từ điển trên dòng đầu tiên. Từ điển được tạo bằng cách sử dụng dấu ngoặc nhọn (_______133_______), giống như cách sử dụng dấu ngoặc vuông để tạo danh sách. Từ điển chúng tôi tạo ở đây có ba mục trong đó mỗi mục bao gồm một khóa và một giá trị. Giá trị là dữ liệu thực mà chúng tôi muốn giữ và điều quan trọng là cách chúng tôi có thể nhận được dữ liệu chúng tôi muốn. Khóa và giá trị được phân tách bằng dấu hai chấm và mỗi cặp khóa-giá trị được phân tách bằng dấu phẩy Show
Trên dòng tiếp theo, chúng tôi truy cập dữ liệu trong từ điển Vì từ điển có thể khá lớn và đôi khi khó có thể thấy phần nào là khóa và phần nào là giá trị, nên có thể viết từ điển trên nhiều dòng, một dòng cho mỗi mục khóa-giá trị Phương pháp #2. Sử dụng iter() + next() Có thể sử dụng kết hợp các chức năng trên để thực hiện tác vụ cụ thể này. Nó sử dụng các trình vòng lặp để thực hiện tác vụ này. next() được sử dụng để tìm nạp các cặp cho đến khi hết từ điển. Nó hoạt động với Python3.Từ điển là kho lưu trữ khóa-giá trị, nghĩa là chúng lưu trữ và cho phép truy xuất dữ liệu (hoặc giá trị) thông qua một khóa duy nhất. Điều này tương tự với một từ điển thực, nơi bạn tra cứu các định nghĩa (dữ liệu) bằng cách sử dụng một khóa nhất định - từ. Tuy nhiên, không giống như từ điển ngôn ngữ, các khóa trong từ điển Python không được sắp xếp theo thứ tự bảng chữ cái Từ Python 3. 6 từ điển trở đi được sắp xếp theo thứ tự các phần tử được lưu trữ và truy xuất theo thứ tự chúng được thêm vào. Điều này thường chỉ có hậu quả đối với việc lặp lại (xem sau) Mọi thứ có thể được lưu trữ trong biến Python đều có thể được lưu trữ trong giá trị từ điển. Điều đó bao gồm các loại có thể thay đổi bao gồm 6 và thậm chí 7 - nghĩa là bạn có thể lồng các từ điển vào bên trong một từ điển khác. Ngược lại, các khóa phải có thể băm và không thay đổi — đối tượng băm không được thay đổi sau khi tính toán. Điều này có nghĩa là không thể sử dụng các đối tượng 6 hoặc 7 cho các khóa từ điển, tuy nhiên, một 0 vẫn ổnBăm là một đại diện có thể tái tạo, nhỏ gọn, của một giá trị ban đầu. Có thể lặp lại có nghĩa là việc băm cùng một đầu vào sẽ luôn tạo ra cùng một đầu ra. Điều này rất cần thiết cho các khóa từ điển nơi băm được sử dụng để lưu trữ và tra cứu giá trị. nếu hàm băm thay đổi mỗi khi chúng tôi băm khóa, chúng tôi sẽ không bao giờ tìm thấy bất kỳ thứ gì TạoTừ điển có thể được định nghĩa bằng cả cú pháp nghĩa đen hoặc hàm tạo. Cú pháp theo nghĩa đen rõ ràng hơn một chút, nhưng có những tình huống mà 1 hữu íchtrăn
Bạn có thể thêm các mục ban đầu vào từ điển bằng cách chuyển các cặp khóa-giá trị tại thời điểm tạo. Hai cú pháp sau đây là tương đương và sẽ tạo ra một từ điển giống hệt nhau trăn
Tuy nhiên, hãy lưu ý rằng các khóa trong cú pháp 7 chỉ được giới hạn ở các tên tham số từ khóa hợp lệ — ví dụ: bạn không thể sử dụng bất kỳ thứ gì không phải là tên biến hợp lệ (bao gồm số, tên chữ và số viết tắt hoặc dấu chấm câu)trăn
Như mọi khi trong Python, các tham số từ khóa được hiểu là tên chuỗi, bỏ qua mọi biến được xác định có cùng tên trăn
Vì lý do này, 1 chỉ thực sự hữu ích khi bạn có tên khóa rất hạn chế. Trường hợp này thường xảy ra, nhưng bạn có thể tránh hoàn toàn những phiền toái này bằng cách sử dụng cú pháp 4 theo nghĩa đenThêmBạn có thể thêm các mục vào từ điển bằng cách gán giá trị cho một khóa, sử dụng cú pháp dấu ngoặc vuông 5trăn
Gán cho các khóa đã tồn tại sẽ thay thế giá trị hiện có cho khóa đó trăn
Truy xuấtCác giá trị cho một khóa nhất định có thể được truy xuất bằng khóa, sử dụng cú pháp dấu ngoặc vuông 5trăn
Truy xuất một mục không xóa mục đó khỏi từ điển trăn
Giá trị được trả về là cùng một đối tượng được lưu trữ trong từ điển, không phải là bản sao. Điều quan trọng cần ghi nhớ khi sử dụng các đối tượng có thể thay đổi, chẳng hạn như danh sách làm giá trị trăn
Lưu ý rằng những thay đổi được thực hiện đối với 6 được trả lại tiếp tục được phản ánh trong từ điển. Danh sách đã truy xuất và giá trị trong từ điển là cùng một đối tượngLoại bỏĐể xóa một mục khỏi từ điển, bạn có thể sử dụng 8 sử dụng cú pháp dấu ngoặc vuông với phím để truy cập phần tửtrăn
Bạn cũng có thể xóa các mục khỏi từ điển bằng cách sử dụng 9. Thao tác này sẽ xóa khóa đã cho khỏi từ điển và trả về giá trịtrăn 0ĐếmSố phần tử trong từ điển có thể được tìm thấy bằng cách sử dụng 0trăn 1Độ dài của một từ điển 1, 2 và 3 luôn bằng nhauXem đối tượngCác khóa, giá trị và mục từ từ điển có thể được truy cập bằng các phương pháp 1, 2 và 3. Các phương thức này trả về các đối tượng dạng xem cung cấp dạng xem trên từ điển nguồnCó các đối tượng xem riêng biệt cho từng khóa, giá trị và mục - lần lượt là 7, 8 và 9trăn 2 9 cung cấp chế độ xem qua các bộ dữ liệu của 1 cặptrăn 3Các đối tượng xem này đều có thể lặp lại. Chúng cũng động — các thay đổi đối với từ điển gốc tiếp tục được phản ánh trong chế độ xem sau khi nó được tạo trăn 4Điều này khác với Python 2. 7, trong đó 1, 2 và 3 trả về một danh sách tĩnhTư cách thành viênĐể xác định xem một khóa nhất định có trong từ điển hay không, bạn có thể sử dụng từ khóa 5. Điều này sẽ trả về 6 nếu tìm thấy khóa đưa ra, 7 nếu không tìm thấytrăn 5Bạn cũng có thể kiểm tra xem một giá trị đã cho hoặc cặp khóa-giá trị có trong từ điển hay không bằng cách sử dụng chế độ xem 2 và 3trăn 6Những tra cứu này kém hiệu quả hơn so với tra cứu dựa trên khóa trên từ điển và việc cần tra cứu các giá trị hoặc mục thường là dấu hiệu cho thấy 7 không phải là nơi lưu trữ tốt cho dữ liệu của bạnDanh sách từ từ điểnĐể đưa 6 khóa, giá trị hoặc mục của từ điển vào danh sách, chúng ta có thể lấy các đối tượng xem 7, 8 hoặc 9 và chuyển chúng tới 5trăn 7Chuyển đổi các đối tượng dạng xem thành danh sách sẽ phá vỡ liên kết đến từ điển gốc, do đó, các cập nhật tiếp theo cho từ điển sẽ không được phản ánh trong danh sách Từ điển từ danh sáchCác danh sách tương tự có thể được sử dụng để tạo từ điển. Cách tiếp cận đơn giản nhất là sử dụng 6 của 7 trong đó phần tử đầu tiên trong 0 được sử dụng cho khóa và phần tử thứ hai cho giá trịtrăn 8Bạn có thể chuyển vào các trình vòng lặp khác, không chỉ danh sách. Hạn chế duy nhất là trình vòng lặp cần trả về 2 mục cho mỗi lần lặp Nếu bạn có các thành phần khóa và giá trị trong các danh sách riêng biệt, bạn có thể sử dụng 9 để kết hợp chúng lại với nhau thành các bộ trước khi tạo từ điểntrăn 9Nếu danh sách khóa và giá trị không có cùng độ dài, hành vi của 9 là âm thầm bỏ bất kỳ mục thừa nào khỏi danh sách dài hơntrăn 0lặp đi lặp lạiTheo mặc định, lặp qua từ điển lặp qua các phím trăn 1Điều này tương đương về mặt chức năng với việc lặp qua chế độ xem 1trăn 2Từ điển không bị ảnh hưởng bởi việc lặp lại nó và bạn có thể sử dụng khóa trong vòng lặp của mình để truy cập giá trị từ từ điển trăn ______9_______3 Nếu bạn muốn truy cập vào các giá trị từ điển trong vòng lặp của mình, bạn có thể lặp lại các mục để chúng được trả về trong vòng lặp 02. Các khóa và giá trị được trả về dưới dạng 2-tupletrăn 4Bạn có thể giải nén khóa và giá trị thành các biến riêng biệt trong vòng lặp, làm cho chúng khả dụng mà không cần lập chỉ mục. Đây là cấu trúc vòng lặp phổ biến nhất được sử dụng với từ điển trăn ______9_______5 Nếu bạn chỉ quan tâm đến các giá trị từ điển, bạn cũng có thể lặp lại trực tiếp các giá trị này trăn ______9_______6 Nếu bạn muốn tính khi bạn lặp lại, bạn có thể sử dụng 03 như với bất kỳ trình lặp nào, nhưng bạn phải lồng quá trình giải néntrăn ______9_______7 hiểu từ điểnKhả năng hiểu từ điển là các phép lặp tốc ký có thể được sử dụng để xây dựng từ điển, trong khi lọc hoặc thay đổi khóa hoặc giá trị Lặp lại danh sách các bộ dữ liệu 1 và gán cho các khóa và giá trị sẽ tạo một từ điển mớitrăn 8Bạn có thể lọc các phần tử bằng cách sử dụng mệnh đề 05 ở cuối. Nếu biểu thức này có giá trị là 7 thì phần tử sẽ bị bỏ qua (nếu nó có giá trị là 6 thì nó sẽ được thêm vào)trăn 9Bất kỳ biểu thức hợp lệ nào cũng có thể được sử dụng để so sánh, miễn là nó trả về giá trị trung thực hoặc sai trăn 0So sánh có thể được thực hiện đối với các khóa, giá trị hoặc cả hai trăn 1Vì chuỗi rỗng được đánh giá là 7 trong thử nghiệm Python nên chỉ riêng giá trị có thể được sử dụng để loại bỏ các giá trị chuỗi rỗng khỏi từ điểntrăn 2Các danh sách khóa và giá trị riêng biệt có thể được nén và lọc bằng cách sử dụng khả năng hiểu từ điển trăn 3Các biểu thức cũng có thể được sử dụng trong cấu trúc 09 để thay đổi các khóa hoặc giá trị được tạo cho từ điểntrăn 4Mọi biểu thức đều hợp lệ, cho cả khóa và giá trị, bao gồm cả chức năng gọi trăn 5Bạn có thể sử dụng một ternary 10 trong 09 để thay thế các phím một cách có chọn lọc. Trong các giá trị ví dụ sau được thay thế nếu chúng không khớp với 12trăn 6Bạn cũng có thể sử dụng cú pháp bậc ba để xử lý khóa. Mọi biểu thức đều hợp lệ ở đây, trong ví dụ sau, chúng tôi thay thế các khóa bị thiếu bằng số lần lặp hiện tại (được lập chỉ mục 1) trăn 7Nếu biểu thức của bạn tạo khóa trùng lặp, giá trị sau sẽ được ưu tiên cho khóa đó trăn 8Bạn có thể sử dụng các vòng lặp lồng nhau trong phần hiểu từ điển mặc dù bạn thường không muốn vì nó có thể gây nhầm lẫn. Tuy nhiên, một ứng dụng hữu ích của điều này là để làm phẳng các từ điển lồng nhau. Ví dụ sau unnestes 2-deep dictionaries, loại bỏ các khóa bên ngoài trăn 9Tay trái lặp vòng lặp bên ngoài, vòng lặp này lặp lại từ điển 13 tạo ra các giá trị trong 14. Vòng lặp bên trong bên phải lặp lại các khóa và giá trị từ điển này là 15 và 16, được sử dụng để tạo từ điển mới ở phía bên trái 09sáp nhậpCó một số cách để hợp nhất từ điển. Sự khác biệt chính giữa các phương pháp là cách thức (hoặc liệu) chúng xử lý các khóa trùng lặp Cập nhậtMỗi đối tượng từ điển có một phương thức 18, có thể được sử dụng để thêm một bộ khóa và giá trị vào một từ điển hiện có, sử dụng một từ điển khác làm nguồntrăn 0Điều này cập nhật từ điển gốc và không trả lại bản sao Nếu có các khóa trùng lặp trong từ điển đang được cập nhật, các giá trị từ từ điển đó sẽ thay thế các giá trị trong từ điển đang được cập nhật trăn 1Nếu bạn không muốn thay thế các khóa đã có, bạn có thể sử dụng khả năng hiểu từ điển để lọc trước trăn 2giải nénTừ điển có thể được giải nén thành 19 cặp từ khóa, được sử dụng để truyền tham số cho hàm hoặc hàm tạo. Điều này có thể được sử dụng để kết hợp nhiều từ điển bằng cách giải nén chúng liên tiếpĐiều này yêu cầu Python 3. 6 trở lên trăn 3Giải nén bằng cú pháp này xử lý các khóa trùng lặp, với từ điển sau được ưu tiên từ trước đó trăn 4Bạn có thể sử dụng cùng cú pháp này để hợp nhất nhiều từ điển lại với nhau trăn 5Bạn cũng có thể giải nén thành một 1trăn 6Tuy nhiên, trong trường hợp này, các khóa trùng lặp không được hỗ trợ và bạn bị giới hạn bởi các hạn chế đặt tên từ khóa được mô tả trước đó trăn 7Không có hạn chế như vậy đối với việc giải nén 4trăn 8Ngoài ra (Python 2. 7 chỉ)Trong Python 2. 7 22 trả về một danh sách gồm các bộ dữ liệu 1. Các danh sách có thể được nối bằng cách sử dụng toán tử 24 và danh sách kết quả có thể được chuyển đổi trở lại một từ điển mới bằng cách chuyển đến hàm tạo 7trăn 9Bạn có thể thêm nhiều từ điển bằng phương pháp này. Các khóa từ điển sau được ưu tiên hơn trước Liên minh (đặt hợp nhất)Nếu cả khóa và giá trị của từ điển đều có thể băm được, thì chế độ xem 9 hỗ trợ các thao tác giống như 27trăn 0Việc hợp nhất diễn ra từ phải sang trái Nếu các giá trị không thể băm được, điều này sẽ tăng 28trăn 1Tất cả các hoạt động tiêu chuẩn của 27 đều có thể thực hiện được trên 7 và 9Sao chépĐể tạo một bản sao của từ điển hiện có, bạn có thể sử dụng 32. Điều này dẫn đến một từ điển giống hệt nhau là một đối tượng riêng biệttrăn 2Bạn cũng có thể tạo một bản sao của từ điển bằng cách chuyển từ điển hiện có tới phương thức khởi tạo 7. Điều này có chức năng tương đương với 32trăn 3Trong cả hai trường hợp, đây là những bản sao nông nghĩa là các đối tượng lồng nhau trong từ điển cũng không được sao chép. Các thay đổi đối với các đối tượng lồng nhau này cũng sẽ được phản ánh trong từ điển gốc Giá trị từ điển Python có thể là biến không?Mọi thứ có thể được lưu trữ trong biến Python đều có thể được lưu trữ trong giá trị từ điển . Điều đó bao gồm các loại có thể thay đổi bao gồm danh sách và thậm chí cả chính tả - nghĩa là bạn có thể lồng các từ điển vào một từ điển khác. Ngược lại, các khóa phải có thể băm và không thay đổi - hàm băm đối tượng không được thay đổi sau khi được tính toán.
Làm cách nào để lấy các giá trị từ từ điển trong Python?Cú pháp Phương thức get() của Từ điển Python. . cú pháp. đọc chính tả. get(key, default=None) Thông số trả lại. Trả về giá trị của mục với khóa được chỉ định hoặc giá trị mặc định Làm thế nào chúng ta có thể nhận được các giá trị từ từ điển?Các giá trị trong từ điển Python có thể được truy cập bằng cách đặt khóa trong dấu ngoặc vuông bên cạnh từ điển . Các giá trị có thể được viết bằng cách đặt khóa trong dấu ngoặc vuông bên cạnh từ điển và sử dụng toán tử gán ( = ).
Làm cách nào để chuyển đổi biến thành từ điển trong Python?Sử dụng zip và dict
. Chúng tôi cũng sử dụng hàm zip để nhóm các khóa và giá trị lại với nhau, cuối cùng trở thành cặp giá trị khóa trong từ điển. The dict() can be used to take input parameters and convert them to a dictionary. We also use the zip function to group the keys and values together which finally become the key value pair in the dictionary. |