Trong hướng dẫn trước, chúng ta đã nói về tính linh hoạt và linh hoạt của một loại đối tượng Python, danh sách. Trong bài viết này, tôi tiếp tục nhiệm vụ truyền bá từ Python với các đối tượng linh hoạt khác, được gọi là Từ điển [còn được gọi là mảng kết hợp]. Giống như danh sách, từ điển là một khái niệm quan trọng cần hiểu nếu chúng ta muốn tiếp tục cuộc hành trình của mình trên con đường Python.
Từ điển là gì?
Nếu bạn đã xem bài viết về danh sách Python, bạn sẽ dễ hiểu hơn về khái niệm Từ điển. Chúng ít nhiều giống với danh sách, nhưng có hai điểm khác biệt chính
- Chúng là các tập dữ liệu không có thứ tự [không giống như danh sách, được sắp xếp theo thứ tự]
- Các phím được sử dụng để truy cập các phần tử và không phải là một vị trí
Mỗi khóa từ điển có một giá trị, có thể thuộc bất kỳ loại đối tượng Python nào. Nghĩa là, từ điển có thể được coi là cặp khóa-giá trị. Tuy nhiên, hãy cẩn thận rằng các khóa không phải là loại danh sách cũng như loại từ điển
Hãy tạo một từ điển Anh-Pháp
Như chúng ta đã thấy trong phần trước, từ điển chỉ đơn giản là một tập hợp các cặp khóa-giá trị không có thứ tự. Chúng ta sẽ sử dụng khái niệm này để tạo ví dụ đầu tiên, một từ điển Anh-Pháp. Từ điển này có thể được tạo như sau
english_french = {'paper':'papier', 'pen':'stylo', 'car':'voiture', 'table':'table','door':'porte'}
Từ điển english_french chứa năm từ tiếng Anh làm khóa, với nghĩa tiếng Pháp của chúng được đặt làm giá trị
Vì vậy, nếu chúng ta muốn biết cách nói "pen" bằng tiếng Pháp, chúng ta chỉ cần làm như sau
english_french['pen']
Và bạn sẽ nhận được "phong cách" làm giá trị trả về
làm nhiều điều thú vị hơn
Giả sử chúng ta có một từ điển Pháp-Tây Ban Nha [french_spanish] với cùng các từ mà chúng ta có trong từ điển tiếng Anh_Pháp, chẳng hạn như
________haiHãy tưởng tượng rằng bạn được yêu cầu dịch từ “cửa” sang tiếng Tây Ban Nha và bạn không có sẵn từ điển Anh-Tây Ban Nha!. Đừng lo đã có giải pháp. Tra từ trong từ điển tiếng Anh_tiếng Pháp của bạn, sau đó sử dụng kết quả để tra từ điển tiếng Pháp_tiếng Tây Ban Nha. Tất cả rõ ràng?
french_spanish[english_french['door']]
Kết quả của tất cả điều này phải là "cửa". Tất cả những điều này về từ điển Python thú vị đến mức nào?
Nhiều thao tác hơn với từ điển
Trong ví dụ trước, chúng ta đã thấy cách chúng ta có thể tạo từ điển và truy cập các phần tử đã nói của từ điển. Chúng ta sẽ xem thêm một số thao tác mà chúng ta có thể thực hiện với từ điển. Tôi sẽ sử dụng từ điển english_french trong các ví dụ sau
Từ điển có bao nhiêu mục?
Nói cách khác, thao tác này nhằm trả về số lượng cặp khóa-giá trị trong từ điển. Điều này có thể được thực hiện bằng cách sử dụng toán tử len[], sao cho
len[english_french]
Điều này sẽ trả về số 5
xóa một khóa
Việc xóa một phần tử trong từ điển được thực hiện thông qua các phím. Ví dụ: giả sử chúng ta muốn xóa từ "cửa" [chìa khóa] khỏi từ điển. Điều này có thể được thực hiện đơn giản với đoạn mã sau
del english_french['door']
Thao tác này sẽ xóa khóa “cửa” cùng với giá trị “porte” của nó.
Khóa có tồn tại trong từ điển không?
Trong phần phụ trước, chúng ta đã loại bỏ từ khóa “cửa” khỏi từ điển. Nếu chúng ta muốn kiểm tra xem "cửa" có còn tồn tại trong từ điển hay không, chúng ta viết
'door' in english_french
Nó sẽ trả về false
Và câu này?nó sẽ trả về cái gì?
'door' not in english_french
Điều gì sẽ xảy ra nếu chúng ta cố truy cập một khóa không tồn tại trong từ điển? . Trong trường hợp đó, bạn sẽ gặp lỗi tương tự như sau
________số 8Tạo một bản sao của từ điển
Bạn có thể muốn tạo một bản sao từ điển english_french của mình để gán cho một từ điển khác. Điều này có thể được thực hiện đơn giản bằng cách sử dụng hàm copy[], sao cho
new_english_french = english_french.copy[]
tra từ điển
Có nhiều cách để lặp qua các phần tử của từ điển, chẳng hạn như
english_french['pen']0
Kết quả của câu này sẽ là
________mười mộtLưu ý rằng các khóa trong kết quả không được nhìn thấy theo thứ tự như trong từ điển english_french. Bây giờ bạn có thể thấy tại sao tôi nói với bạn rằng từ điển được coi là bộ không có thứ tự.
Một cách khác để duyệt từ điển thông qua các phím như sau
english_french['pen']2
Lưu ý rằng tôi đã sử dụng hàm iterkeys[]. Một chức năng tương tự có thể được sử dụng để lặp qua các giá trị khác nhau là itervalues[]. Kiểm tra nó ra