Tìm hiểu tất cả về cách hiểu từ điển Python, bao gồm cách tạo từ điển, sử dụng điều kiện [câu lệnh if-else] và cách lồng ghép cách hiểu với các bước và ví dụ dễ thực hiện
Từ điển hiểu tương tự như Danh sách hiểu Python. Nếu bạn cũng muốn tìm hiểu về những điều đó, hãy xem hướng dẫn của chúng tôi tại đây
Mục lục
Từ điển [dicts] trong Python là gì?
Từ điển [hoặc, dicts] trong Python là tập hợp các mục không có thứ tự. Các kiểu dữ liệu phức hợp khác [chẳng hạn như danh sách hoặc bộ dữ liệu] chỉ có giá trị dưới dạng phần tử, từ điển có khóa. cặp giá trị như là phần tử của nó
Từ điển cho phép bạn dễ dàng truy xuất các giá trị khi bạn biết khóa
Nếu bạn muốn tìm hiểu mọi thứ bạn cần biết về từ điển trong Python, hãy xem hướng dẫn toàn diện của Real Python về từ điển
Làm thế nào để bạn tạo một từ điển Python?
Tất cả những gì bạn cần làm để tạo từ điển trong Python là đặt các mục vào dấu ngoặc nhọn, cách nhau bằng dấu phẩy
Hãy tạo từ điển cho cuốn sách Harry Potter và Hòn đá phù thủy
hp = {
'title': "Harry Potter and the Philosopher's Stone",
'author': "J.K. Rowling",
'publication': '1988-06-26'
}
Làm cách nào để truy cập các phần tử từ từ điển Python?
Thay vì sử dụng lập chỉ mục như các loại vùng chứa khác, từ điển sử dụng các khóa. Các phím có thể được sử dụng bên trong dấu ngoặc vuông hoặc sử dụng phương thức get[]
Phương thức get[] trả về Không thay vì KeyError khi không tìm thấy khóa
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
Hiểu từ điển Python là gì?
Khả năng hiểu từ điển Python là cách ngắn gọn để tạo từ điển mà không cần sử dụng vòng lặp for
Nếu bạn muốn tìm hiểu thêm về For Loops trong Python, hãy xem hướng dẫn đầy đủ của chúng tôi
Chúng tương tự như cách hiểu danh sách trong Python. Tuy nhiên, thay vì tạo danh sách, họ tạo từ điển
Tại sao nên sử dụng tính năng hiểu chính tả của Python?
Việc hiểu từ điển thường ngắn gọn và dễ đọc hơn là viết các vòng lặp for phức tạp để đạt được điều tương tự
Mọi cách hiểu từ điển đều có thể được viết dưới dạng vòng lặp for [nhưng không phải mọi vòng lặp for đều có thể được viết dưới dạng cách hiểu từ điển
Tuy nhiên, các vòng lặp for dài và có thể khó theo dõi
Bởi vì chúng có xu hướng ngắn hơn một chút so với các vòng lặp for, nên khả năng hiểu làm cho mã trở nên Pythonic hơn
Khả năng hiểu chính tả trong Python nhằm mục đích làm cho mã dễ đọc hơn, trong khi không yêu cầu bạn viết một vòng lặp for rõ ràng
Làm thế nào để bạn viết một cách hiểu từ điển bằng Python?
Tương tự như cách hiểu danh sách trong Python, cách hiểu từ điển tuân theo mẫu bên dưới
Hãy khám phá điều này chi tiết hơn một chút
- Chìa khóa. giá trị đề cập đến cặp giá trị chính mà bạn muốn tạo
- Khóa và giá trị không nhất thiết phải khác nhau và có thể tham chiếu đến cùng một giá trị
- vars đề cập đến biến trong iterable
- iterable đề cập đến bất kỳ đối tượng python nào mà bạn có thể lặp lại [chẳng hạn như danh sách, bộ dữ liệu hoặc chuỗi]
Hãy thử một ví dụ đơn giản
Ví dụ hiểu từ điển. Tạo bình phương của số
Hãy tưởng tượng bạn được giao nhiệm vụ tạo một từ điển cho các số từ 1 đến 5, trong đó
- Chìa khóa là số ban đầu, và
- Giá trị là số ban đầu bình phương
Chúng ta có thể viết đoạn mã sau
squares = {i:i**2 for i in [1,2,3,4,5]}
print[squares]
Điều này trả về từ điển sau
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
Ví dụ hiểu từ điển. Đổi từ Kilôgam sang Pounds
Hãy tưởng tượng chúng tôi có một từ điển chứa trọng lượng cho các mặt hàng tính bằng kilôgam và chúng tôi muốn chuyển đổi các trọng lượng đó thành pound
old_weights = {
'book': 0.5,
'milk': 2.0,
'tv': 7.0
}
new_weights = {key: value*2.2 for [key, value] in old_weights.items[]}
print[new_weights]
Điều này trả về đầu ra sau
{'book': 1.1, 'milk': 4.4, 'tv': 15.4}
Kiểm tra một số hướng dẫn Python khác về dữ liệu, bao gồm hướng dẫn đầy đủ về Bảng xoay Pandas của chúng tôi và Hướng dẫn cơ bản về SQLite3 trong Python của chúng tôi
Làm cách nào để bạn thêm điều kiện [câu lệnh if-else] vào phần hiểu từ điển Python?
Trong hầu hết các đoạn mã, các điều kiện được sử dụng làm giải pháp cho các vấn đề. Khả năng hiểu từ điển Python thậm chí còn trở nên mạnh mẽ hơn khi chúng ta thêm điều kiện vào chúng, chẳng hạn như câu lệnh if và if-else
Thêm câu lệnh IF vào phần hiểu chính tả của Python
Nếu chúng tôi có một từ điển bao gồm các cặp khóa-giá trị, chẳng hạn như người và tuổi của họ, thì chúng tôi có thể lọc từ điển để chỉ bao gồm những người trên 25 tuổi
ages = {
'kevin': 12,
'marcus': 9,
'evan': 31,
'nik': 31
}
new_ages = {key:value for [key, value] in ages.items[] if value > 25}
print[new_ages]
Điều này trả về
{'evan': 31, 'nik': 31}
Hãy xem nó được viết như thế nào
________số 8Câu lệnh IF theo sau mục iterable
Thêm nhiều câu lệnh IF
Nếu chúng ta muốn thêm nhiều câu lệnh if [tương tự như câu lệnh if lồng nhau trong vòng lặp for], chúng ta chỉ cần xâu chuỗi chúng lại với nhau
Ví dụ: nếu chúng tôi muốn lọc danh sách độ tuổi của mình để chỉ bao gồm những người dưới 25 tuổi và có độ tuổi chẵn [trong đó mô đun tuổi 2 trả về 0], chúng tôi có thể viết
ages = {
'kevin': 12,
'marcus': 9,
'evan': 31,
'nik': 31
}
younger = {key:value for [key, value] in ages.items[] if value < 25 if value % 2 == 0}
print[younger]
Điều này trả về như sau
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
0Nếu chúng ta muốn xâu chuỗi thêm các câu lệnh if, chúng ta chỉ cần viết chúng theo thứ tự
Mẹo. Xâu chuỗi câu lệnh if cũng giống như tạo câu lệnh AND
Hiểu từ điển Python nếu khác
Sử dụng câu lệnh IF-ELSE có thể làm cho khả năng hiểu từ điển trở nên mạnh mẽ hơn. Sử dụng ví dụ trước của chúng tôi, nếu chúng tôi muốn gắn nhãn tuổi là chẵn hoặc lẻ, chúng tôi có thể viết như sau
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
1Điều này trả về như sau
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
2Cấu trúc ở đây hơi khác một chút. Câu lệnh IF-ELSE được áp dụng trực tiếp cho giá trị và được đặt trong ngoặc đơn. Nó được sử dụng để chuyển đổi một giá trị, thay vì xóa một cặp khóa-giá trị, trong trường hợp này
Hiểu từ điển lồng nhau trong Python
Giá trị trong khóa. Cặp giá trị cũng có thể là một cách hiểu từ điển khác
Giả sử chúng ta muốn có một từ điển chứa các khóa có giá trị từ 1 đến 5 và mỗi giá trị là một từ điển khác chứa khóa nhân với các khoảng 10 từ 10 đến 50
Điều này có thể được thực hiện bằng cách viết như sau
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
3Điều này trả về như sau
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
4Việc hiểu từ điển lồng nhau có thể khó hiểu, vì vậy đừng lo lắng nếu bạn không làm theo đầy đủ ví dụ này
Điều quan trọng cần lưu ý là để hiểu từ điển lồng nhau, Python bắt đầu với vòng lặp bên ngoài và sau đó di chuyển [mỗi mục] vào vòng lặp bên trong
Làm thế nào để bạn sử dụng chức năng liệt kê với việc hiểu từ điển Python?
Hàm liệt kê Python rất hữu ích để xác định chỉ mục của một mục trong danh sách, bộ hoặc chuỗi
Điều này đặc biệt hữu ích khi kết hợp với khả năng hiểu từ điển, vì bạn có thể tạo một từ điển xác định chỉ mục hoặc một mục cụ thể
Hãy thử điều này với một ví dụ. Chúng tôi sẽ tạo một danh sách các mục và có thể tạo một từ điển xác định chỉ mục của từng mục
Ví dụ hiểu từ điển. Sử dụng hàm Enumerate
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
5Điều này trả về như sau
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
6Điều này đặc biệt hữu ích nếu chúng ta muốn biết chỉ mục của một mục. Chúng ta có thể chỉ cần sử dụng phương thức get[] mà chúng ta đã học trước đó để truy xuất chỉ mục
Nếu chúng ta muốn lật chìa khóa. cặp giá trị xung quanh, để số chỉ mục là đầu tiên, chúng ta có thể viết
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
7Cái nào trả về sau
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
8Ví dụ về cách hiểu từ điển Python
Trích xuất một tập hợp con của từ điển
Nếu bạn muốn trích xuất một tập hợp con của khóa từ điển. cặp giá trị từ một từ điển lớn hơn, điều này có thể thực hiện được với khả năng hiểu từ điển
Hãy xem một ví dụ. Trong đoạn mã dưới đây, chúng tôi muốn trích xuất a, b, c từ từ điển lớn hơn
print[hp['title']]
#Output: Harry Potter and the Philosopher's Stone
print[hp.get['publication']]
#Output: 1988-06-26
9Điều này trả về như sau
squares = {i:i**2 for i in [1,2,3,4,5]}
print[squares]
0Xóa các mục cho từ điển
Chúng tôi cũng sử dụng khả năng hiểu từ điển để xóa các mục khỏi từ điển. Giả sử chúng tôi có một từ điển bao gồm độ tuổi của mọi người và chúng tôi muốn xóa hai người cụ thể
squares = {i:i**2 for i in [1,2,3,4,5]}
print[squares]
1Điều này trả về như sau
squares = {i:i**2 for i in [1,2,3,4,5]}
print[squares]
2Phím đảo ngược. Giá trị trong từ điển
Chúng ta có thể sử dụng khả năng hiểu từ điển để đảo ngược khóa. mục giá trị của một từ điển. Hãy nhìn vào đoạn mã dưới đây
squares = {i:i**2 for i in [1,2,3,4,5]}
print[squares]
3Hãy sử dụng một ví dụ để chứng minh điều này
squares = {i:i**2 for i in [1,2,3,4,5]}
print[squares]
4Điều này trả về như sau
squares = {i:i**2 for i in [1,2,3,4,5]}
print[squares]
5Cảnh báo với phần hiểu từ điển Python
Khả năng hiểu từ điển rất Pythonic trong cách chúng viết, nhưng cũng có thể phức tạp hơn nhiều để đọc so với các vòng lặp for. Có thể tốt hơn nếu viết một vòng lặp for dài hơn để giúp mã dễ theo dõi hơn là đặt tất cả trên một dòng
Hãy nhớ rằng, khả năng đọc trong tương lai là quan trọng
Phần kết luận
Xin chúc mừng. Bây giờ bạn đã biết mọi thứ bạn cần biết về cách hiểu từ điển Python. Trong bài đăng này, bạn đã học từ điển là gì, cách viết phần hiểu từ điển, thêm điều kiện, cách hiểu lồng nhau và trình bày một số ví dụ