Trình tạo chính tả Python

PEP 202 giới thiệu một phần mở rộng cú pháp cho Python được gọi là “liệt kê hiểu”. PEP này đề xuất một phần mở rộng cú pháp tương tự được gọi là “hiểu từ điển” hoặc “hiểu chính tả” cho ngắn gọn. Bạn có thể sử dụng khả năng hiểu chính tả theo những cách rất giống với khả năng hiểu danh sách, ngoại trừ việc chúng tạo ra các đối tượng từ điển Python thay vì các đối tượng danh sách

PEP này ban đầu được viết để đưa vào Python 2. 3. Nó đã bị rút lại sau khi quan sát thấy rằng về cơ bản tất cả các lợi ích của nó đã được gộp lại bởi các biểu thức trình tạo kết hợp với hàm tạo dict[]

Tuy nhiên, Python 2. 7 và 3. 0 giới thiệu tính năng chính xác này, cũng như cách hiểu tập hợp có liên quan chặt chẽ. Vào ngày 2012-04-09, PEP đã được thay đổi để phản ánh thực tế này bằng cách cập nhật Trạng thái của nó thành Đã chấp nhận và cập nhật trường Phiên bản Python. Phần Câu hỏi mở cũng đã bị xóa vì những câu hỏi này đã được giải quyết từ lâu bằng cách triển khai hiện tại

Khả năng hiểu chính tả cũng giống như khả năng hiểu danh sách, ngoại trừ việc bạn nhóm biểu thức bằng cách sử dụng dấu ngoặc nhọn thay vì dấu ngoặc vuông. Ngoài ra, phần bên trái trước từ khóa for biểu thị cả khóa và giá trị, được phân tách bằng dấu hai chấm. Ký hiệu được thiết kế đặc biệt để nhắc bạn về cách hiểu danh sách như được áp dụng cho từ điển

Đôi khi bạn có một số dữ liệu được sắp xếp thành một chuỗi có độ dài 2 chuỗi và bạn muốn biến nó thành một từ điển. Trong Python 2. 2, hàm tạo dict[] chấp nhận một đối số là một chuỗi các chuỗi có độ dài-2, được sử dụng làm cặp [khóa, giá trị] để khởi tạo một đối tượng từ điển mới

Tuy nhiên, hành động biến một số dữ liệu thành một chuỗi có độ dài 2 chuỗi có thể bất tiện hoặc không hiệu quả từ quan điểm bộ nhớ hoặc hiệu suất. Ngoài ra, đối với một số thao tác phổ biến, chẳng hạn như biến một danh sách các thứ thành một tập hợp các thứ để loại bỏ trùng lặp nhanh chóng hoặc đặt các bài kiểm tra bao gồm, một cú pháp tốt hơn có thể giúp mã rõ ràng hơn

Cũng như khả năng hiểu danh sách, luôn có thể sử dụng vòng lặp for rõ ràng [và trên thực tế, đó là cách duy nhất để làm điều đó trong các phiên bản Python trước đó]. Nhưng cũng giống như khả năng hiểu danh sách, khả năng hiểu chính tả có thể cung cấp một thành ngữ ngắn gọn hơn về mặt cú pháp mà vòng lặp for truyền thống

Ngữ nghĩa của việc hiểu chính tả thực sự có thể được chứng minh trong stock Python 2. 2, bằng cách chuyển khả năng hiểu danh sách tới hàm tạo từ điển tích hợp

>>> dict[[[i, chr[65+i]] for i in range[4]]]

về mặt ngữ nghĩa tương đương với

>>> {i : chr[65+i] for i in range[4]}

Tuy nhiên, phương pháp xây dựng từ điển có hai nhược điểm khác biệt so với cú pháp được đề xuất. Đầu tiên, nó không dễ đọc như đọc chính tả. Thứ hai, nó buộc lập trình viên phải tạo một đối tượng danh sách trong lõi trước, điều này có thể tốn kém

Khả năng hiểu danh sách là một cách thuận tiện và nhanh hơn để tạo danh sách trong Python chỉ bằng một dòng mã. Nó giúp chúng ta viết các vòng lặp for dễ đọc trong một dòng

Trong Python, từ điển là một cấu trúc dữ liệu để lưu trữ dữ liệu sao cho mỗi phần tử của dữ liệu được lưu trữ được liên kết với một khóa. Cấu trúc dữ liệu từ điển cho phép bạn truy vấn dữ liệu bằng cách sử dụng khóa rất hiệu quả

Ý tưởng hiểu không chỉ là duy nhất đối với các danh sách trong Python. Từ điển, một trong những cấu trúc dữ liệu thường được sử dụng trong khoa học dữ liệu, cũng có thể hiểu. Với khả năng hiểu chính tả hoặc hiểu từ điển, người ta có thể dễ dàng tạo từ điển

Hãy nhớ rằng, trong python, một danh sách được xác định bằng dấu ngoặc vuông [] và từ điển được xác định bằng dấu ngoặc nhọn {}. Ý tưởng được sử dụng trong hiểu danh sách cũng được chuyển sang trong việc xác định hiểu chính tả. Khả năng hiểu chính tả được xác định bằng một cú pháp tương tự, nhưng với một khóa. cặp giá trị trong biểu thức

  • {Chìa khóa. giá trị cho tôi trong danh sách}

Chúng ta hãy xem 5 ví dụ đơn giản về việc sử dụng Dict Comprehension để tạo từ điển mới một cách dễ dàng

[cập nhật. ] Đã thêm ví dụ thứ sáu về hiểu chính tả để xóa các phím trong từ điển

Dict Hiểu Ví dụ 1

Chúng ta hãy xem một ví dụ nhanh về việc tạo một cách đọc chính tả từ một danh sách các số

Ở đây, chúng ta hãy sử dụng một danh sách các số và tạo một từ điển với giá trị chuỗi của số làm khóa và số làm giá trị

# dict comprehension to create dict with numbers as values
>{str[i]:i for i in [1,2,3,4,5]}
{'1': 1, '3': 3, '2': 2, '5': 5, '4': 4}

Dict Hiểu Ví dụ 2

Giả sử, chúng ta có một danh sách các loại trái cây và chúng ta có thể sử dụng tính năng đọc chính tả để tạo một từ điển với các loại trái cây, liệt kê các thành phần làm khóa và độ dài của mỗi chuỗi làm giá trị

# create list of fruits
>fruits = ['apple', 'mango', 'banana','cherry']
# dict comprehension to create dict with fruit name as keys
>{f:len[f] for f in fruits}
{'cherry': 6, 'mango': 5, 'apple': 5, 'banana': 6}

Dict Hiểu Ví dụ 3

Hãy để chúng tôi tạo một từ điển có khả năng hiểu chính tả sao cho các phần tử của danh sách là khóa và các phần tử có chữ cái đầu tiên được viết hoa là giá trị

>{f:f.capitalize[] for f in fruits}
{'cherry': 'Cherry', 'mango': 'Mango', 'apple': 'Apple', 'banana': 'Banana'}

Dict Hiểu Ví dụ 4

Hãy để chúng tôi sử dụng chức năng liệt kê trong việc hiểu từ điển. Nếu bạn chưa sử dụng liệt kê. liệt kê có thể lấy bất kỳ thứ gì có thể lặp lại làm đầu vào và trả về phần tử và chỉ mục của nó

Ở đây, chúng tôi sử dụng hàm liệt kê trên danh sách để tạo các bộ dữ liệu phần tử chỉ mục và danh sách và sử dụng chúng để tạo một từ điển có khả năng hiểu chính tả. Chúng tôi tạo một từ điển với các phần tử của danh sách làm khóa và chỉ mục của các phần tử làm giá trị. Những từ điển có chỉ mục phần tử như vậy thường hữu ích trong nhiều tình huống khác nhau

# dict comprehension example using enumerate function
>{f:i for i,f in enumerate[fruits]}
{'cherry': 3, 'mango': 1, 'apple': 0, 'banana': 2}

Dict Hiểu Ví dụ 5

Một cách sử dụng khác của hiểu chính tả là đảo ngược phím. giá trị trong một từ điển hiện có. Đôi khi bạn có thể muốn tạo từ điển mới từ một thư mục hiện có, chẳng hạn như vai trò của khóa. cặp giá trị trong từ điển đầu tiên được đảo ngược trong từ điển mới. Chúng ta có thể sử dụng Dict Comprehension và lật phần tử để lập chỉ mục từ điển để lập chỉ mục cho từ điển phần tử

# dict comprehension example to reverse key:value pair in a dictionary
>f_dict = {f:i for i,f in enumerate[fruits]}
>f_dict
{'apple': 0, 'banana': 2, 'cherry': 3, 'mango': 1}
# dict comprehension to reverse key:value pair in a dictionary
>{v:k for k,v in f_dict.items[]}
{0: 'apple', 1: 'mango', 2: 'banana', 3: 'cherry'}

Chúng tôi đã sử dụng chức năng mục của từ điển để lấy các cặp khóa, giá trị trong một từ điển hiện có và tạo một từ điển mới trong đó các khóa trong từ điển gốc là các giá trị trong từ điển mới và ngược lại


Đọc chính tả Ví dụ 6. Làm cách nào để xóa các khóa đã chọn khỏi từ điển bằng tính năng đọc chính tả?

Giả sử bạn có từ điển và muốn tạo từ điển mới bằng cách xóa cặp khóa-giá trị nhất định. Chúng ta có thể sử dụng Dict Comprehension để xóa các cặp khóa-giá trị đã chọn khỏi từ điển và tạo từ điển mới

Hãy để chúng tôi sử dụng từ điển "trái cây" mà chúng tôi đã tạo ở trên

fruits = ['apple', 'mango', 'banana','cherry']
f_d1 ={f:f.capitalize[] for f in fruits}
f_d1

Hãy để chúng tôi sử dụng khả năng hiểu từ điển để loại bỏ hai khóa, quả táo và quả chuối, và các giá trị của chúng khỏi từ điển trái cây

________số 8_______

Chúng tôi đã loại bỏ các phím, quả táo và quả anh đào, chỉ bằng cách sử dụng đối tượng phím dict với các thao tác đã thiết lập và bây giờ từ điển mới chỉ chứa chuối và xoài

Làm cách nào để tạo từ điển bằng Python?

Để tạo một từ điển trống, trước tiên hãy tạo một tên biến sẽ là tên của từ điển. Sau đó, gán biến cho một bộ dấu ngoặc nhọn trống, {} . Một cách khác để tạo từ điển rỗng là sử dụng hàm dict[] mà không truyền bất kỳ đối số nào.

dict[] và {} có giống nhau không?

Có hai cách khác nhau để tạo từ điển. Bạn có thể gọi hàm dict[] hoặc sử dụng cú pháp chữ. {}. Và trong nhiều trường hợp, đây là những lựa chọn tương đương nhau , vì vậy bạn có thể ít suy nghĩ và cho rằng cả hai đều mất thời gian như nhau.

dict ={} trong Python là gì?

Cấu trúc bảng băm khóa/giá trị hiệu quả của Python được gọi là "dict". Nội dung của một dict có thể được viết dưới dạng một chuỗi key. cặp giá trị trong dấu ngoặc nhọn { }, e. g. chính tả = {key1. giá trị1, khóa2. giá trị2,. }. "Chính tả trống" chỉ là một cặp dấu ngoặc nhọn trống {}.

Có == cho dict trong Python không?

Theo tài liệu python, bạn thực sự có thể sử dụng toán tử == trên từ điển .

Chủ Đề