Bạn có thể sử dụng Từ điển trong Python để lưu trữ dữ liệu theo cặp khóa và giá trị.
Và bạn có thể sử dụng khả năng hiểu từ điển để tạo một từ điển mới từ một từ điển đã tồn tại.
Khi tạo một từ điển mới bằng tính năng hiểu từ điển, bạn có thể thực hiện nhiều thao tác khác nhau bằng cách sử dụng các biểu thức để xác định dữ liệu (khóa và/hoặc giá trị) sẽ được lưu trữ trong từ điển mới.
Trong bài viết này, bạn sẽ học cách tạo từ điển bằng Python bằng cách sử dụng khả năng hiểu từ điển. Bạn cũng sẽ thấy các biểu thức khác nhau mà bạn có thể sử dụng để sửa đổi dữ liệu sẽ được lưu trữ trong từ điển mới.
Bắt đầu nào!
Cách sử dụng tính năng hiểu từ điển trong Python
Trước khi chúng ta xem xét một số ví dụ, đây là cú pháp để hiểu từ điển trông như thế nào:
new_dictionary = {key: value for (key,value) in iterable}
Trong cú pháp trên, key
và value
đại diện cho khóa và giá trị trong từ điển ban đầu. Bất kỳ thao tác nào bạn thực hiện trên chúng sẽ xác định khóa/giá trị trong từ điển mới — bạn sẽ sớm hiểu điều này rõ hơn với một số ví dụ.
Các key
và value
trong ngoặc đơn – (key, value)
– vẫn giống như những gì chúng tôi đã đề cập ở trên. Trong trường hợp này, chúng được sử dụng trong một for
vòng.
Vì vậy, bất kỳ thao tác nào bạn thực hiện trên key
và value
sẽ được vòng lặp sử dụng để áp dụng thao tác đó trên mọi mục mà thao tác đó được liên kết trong từ điển ban đầu.
iterable
, trong cú pháp, biểu thị một đối tượng có thể lặp lại. Trong trường hợp của chúng tôi, nó biểu thị từ điển ban đầu.
Hãy xem xét một số ví dụ để giúp bạn hiểu những lời giải thích ở trên.
items_in_cm = {'pen': 40, 'book': 50, 'keyboard': 60}
Trong đoạn mã trên, chúng tôi đã tạo một từ điển với ba mục. Các khóa là tên của các mục trong khi các giá trị là chiều dài của các mục này tính bằng centimet.
Sử dụng khả năng hiểu từ điển, chúng tôi sẽ tạo một từ điển mới với độ dài của từng mục tính bằng mét.
Đây là cách nó hoạt động:
items_in_cm = {'pen': 40, 'book': 50, 'keyboard': 60}
items_in_meters = {key: value/100 for (key, value) in items_in_cm.items()}
print(items_in_meters)
# {'pen': 0.4, 'book': 0.5, 'keyboard': 0.6}
Điều cần chú ý là ở dòng thứ hai ở trên: items_in_meters = {key: value/100 for (key, value) in items_in_cm.items()}
Hãy chia nhỏ nó ra.
Phần đầu có cái này: key: value/100
. Điều này ngụ ý rằng mỗi value
trong từ điển là chia hết cho 100.
Nhưng tra từ điển vẫn chưa hiểu áp dụng câu lệnh trên vào đâu.
Điều này dẫn chúng ta đến phần thứ hai: for (key, value) in items_in_cm.items()
. Phần này mã có một for
vòng lặp có hai tham số — key
và value
.
Vì vậy, điều này sẽ chạy qua mọi khóa và giá trị trong items_in_cm
từ điển và chia mỗi giá trị cho 100.
Chúng tôi có thể truy cập các mục trong từ điển đó bằng cách sử dụng items()
phương thức trả về mọi cặp khóa và giá trị trong từ điển.
In từ điển mới (items_in_meters
), chúng tôi có thứ này: {'pen': 0.4, 'book': 0.5, 'keyboard': 0.6}
. Mọi giá trị trong từ điển mới đã được chia cho 100.
Bạn sẽ nhận thấy rằng chúng tôi chỉ thay đổi dữ liệu trong các giá trị của từ điển. Bạn cũng có thể sửa đổi các phím. Đây là một ví dụ:
items_in_cm = {'pen': 40, 'book': 50, 'keyboard': 60}
items_in_meters = {key + ' in meters': value/100 for (key, value) in items_in_cm.items()}
print(items_in_meters)
# {'pen in meters': 0.4, 'book in meters': 0.5, 'keyboard in meters': 0.6}
Trong ví dụ trên, chúng tôi đã thêm một chuỗi vào mỗi khóa trong phần hiểu từ điển: key + ' in meters'
.
Cách sử dụng câu điều kiện trong việc hiểu từ điển trong Python
Trong phần này và phần tiếp theo, bạn sẽ tìm hiểu về các biểu thức khác mà bạn có thể sử dụng để sửa đổi các mục được lưu trữ trong từ điển được tạo bằng cách hiểu từ điển.
Chúng ta sẽ bắt đầu với các câu điều kiện.
developers = {'Jane': 'Python', 'Jade': 'JavaScript', 'John': 'Python', 'Doe': 'JavaScript'}
python_developers = {key: value for (key, value) in developers.items() if value == 'Python'}
print(python_developers)
# {'Jane': 'Python', 'John': 'Python'}
Trong ví dụ trên, chúng tôi đã tạo một từ điển có tên developers
nơi lưu trữ danh sách các nhà phát triển với ngôn ngữ yêu thích của họ: {'Jane': 'Python', 'Jade': 'JavaScript', 'John': 'Python', 'Doe': 'JavaScript'}
.
Trong phần hiểu từ điển, chúng tôi đã thêm một biểu thức vào cuối: if value == 'Python'
. Thao tác này sẽ quét qua và trả về tất cả các mục có value
có giá trị là ‘Python’.
Khi được in ra, chúng tôi có cái này trong bảng điều khiển: {'Jane': 'Python', 'John': 'Python'}
.
Chúng ta cũng có thể sử dụng một if/else
tuyên bố trong sự hiểu biết từ điển. Đây là một ví dụ:
random_items = {'monitor': 100, 'pen': 40, 'keyboard': 60, 'pencil': 30}
items_length_check = {key: ('above 50' if value > 50 else 'below 50') for (key, value) in random_items.items()}
print(items_length_check)
# {'monitor': 'above 50', 'pen': 'below 50', 'keyboard': 'above 50', 'pencil': 'below 50'}
Sử dụng một if/else
ở trên, chúng tôi đã sửa đổi các giá trị trong từ điển mới. Các value
đối với mỗi mục sẽ là “trên 50” nếu giá trị trong từ điển ban đầu trên 50 và “dưới 50” nếu dưới 50.
Mã trong phần hiểu từ điển bắt đầu trông cồng kềnh. Chúng ta sẽ làm sạch nó trong phần tiếp theo bằng cách sử dụng một hàm.
Cách sử dụng một hàm trong việc hiểu từ điển trong Python
Khi sử dụng khả năng hiểu từ điển, bạn có thể sử dụng các hàm để thay thế/trích xuất logic sẽ đi vào dấu ngoặc nhọn của khả năng hiểu từ điển. Điều này giúp giữ cho mã gọn gàng và dễ đọc.
random_items = {'monitor': 100, 'pen': 40, 'keyboard': 60, 'pencil': 30}
def check_length(value):
if value >50:
return 'above 50'
else:
return 'below 50'
items_length_check = {key: check_length(value) for (key, value) in random_items.items()}
print(items_length_check)
# {'monitor': 'above 50', 'pen': 'below 50', 'keyboard': 'above 50', 'pencil': 'below 50'}
Ví dụ trên tương tự như ví dụ trong phần trước.
Chúng tôi đã thực hiện một thay đổi lớn — trích xuất logic trong phần hiểu từ điển và đặt nó vào một hàm. Đó là:
def check_length(value):
if value >50:
return 'above 50'
else:
return 'below 50'
Sau đó, chúng tôi đặt tên hàm trong cách hiểu từ điển: items_length_check = {key: check_length(value) for (key, value) in random_items.items()}
.
Khi mã trong phần hiểu từ điển chạy, chức năng này sẽ được kích hoạt.
Tóm lược
Trong bài viết này, chúng tôi đã nói về cách hiểu từ điển trong Python. Bạn có thể sử dụng nó để tạo từ điển mới từ những từ hiện có.
Chúng tôi đã thấy cú pháp và cách sử dụng khả năng hiểu từ điển.
Chúng tôi cũng đã xem các ví dụ cho thấy cách sử dụng các câu lệnh và hàm có điều kiện khi làm việc với việc hiểu từ điển.
Chúc mừng mã hóa!