Có, >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 3 có thể được sử dụng trong Python bên trong khả năng hiểu >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 4 với biểu thức có điều kiện ("toán tử ternary"):, >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 3 can be used in Python inside a >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 4 comprehension with a Conditional Expression ("ternary operator"):
>>> [("A" if b=="e" else "c") for b in "comprehension"] ['c', 'c', 'c', 'c', 'c', 'A', 'c', 'A', 'c', 'c', 'c', 'c', 'c']Ở đây, dấu ngoặc đơn "()" chỉ để nhấn mạnh biểu thức có điều kiện, chúng không nhất thiết phải được yêu cầu (ưu tiên toán tử).
Ngoài ra, một số biểu thức có thể được lồng, dẫn đến nhiều >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 3 và khó đọc hơn:
>>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>>Trên một lưu ý liên quan, sự hiểu biết cũng có thể chứa (các) điều kiện >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 6 của riêng mình ở cuối:
>>> ["A" if b=="e" else "c" for b in "comprehension" if False] [] >>> ["A" if b=="e" else "c" for b in "comprehension" if "comprehension".index(b)%2] ['c', 'c', 'A', 'A', 'c', 'c']Các điều kiện? Có, nhiều >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 6 là có thể, và thực sự nhiều >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 8 cũng vậy:s? Yes, multiple >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 6s are possible, and actually multiple >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 8s, too:
>>> [i for i in range(3) for _ in range(3)] [0, 0, 0, 1, 1, 1, 2, 2, 2] >>> [i for i in range(3) if i for _ in range(3) if _ if True if True] [1, 1, 2, 2].
Sử dụng điều này cho một biểu thức có điều kiện bổ sung là có thể, nhưng không sử dụng thực sự:
>>> [i for i in range(3)] [0, 1, 2] >>> [i for i in range(3) if i] [1, 2] >>> [i for i in range(3) if (True if i else False)] [1, 2]Các hệ thống cũng có thể được lồng để tạo danh sách "đa chiều" ("mảng"):
>>> [[i for j in range(i)] for i in range(3)] [[], [1], [2, 2]]Cuối cùng nhưng không kém phần quan trọng, sự hiểu biết không giới hạn trong việc tạo ra >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 4, tức là >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 3 và >>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 6 cũng có thể được sử dụng theo cách tương tự trong sự hiểu biết >>> ["A" if b=="e" else "c" for b in "comprehension" if False] [] >>> ["A" if b=="e" else "c" for b in "comprehension" if "comprehension".index(b)%2] ['c', 'c', 'A', 'A', 'c', 'c'] 3:
>>> {i for i in "set comprehension"} {'o', 'p', 'm', 'n', 'c', 'r', 'i', 't', 'h', 'e', 's', ' '}và sự hiểu biết >>> ["A" if b=="e" else "c" for b in "comprehension" if False] [] >>> ["A" if b=="e" else "c" for b in "comprehension" if "comprehension".index(b)%2] ['c', 'c', 'A', 'A', 'c', 'c'] 4:
>>> {k:v for k,v in [("key","value"), ("dict","comprehension")]} {'key': 'value', 'dict': 'comprehension'}Cú pháp tương tự cũng được sử dụng cho các biểu thức máy phát:
>>> for g in ("a" if b else "c" for b in "generator"): ... print(g, end="") ... aaaaaaaaa>>>có thể được sử dụng để tạo >>> ["A" if b=="e" else "c" for b in "comprehension" if False] [] >>> ["A" if b=="e" else "c" for b in "comprehension" if "comprehension".index(b)%2] ['c', 'c', 'A', 'A', 'c', 'c'] 5 (không có sự hiểu biết tuple).
Đọc thêm:
- Hướng dẫn Python về cấu trúc dữ liệu
- Danh sách toàn diện
- Bộ
- Từ điển
Bạn có thể sử dụng if-else trong danh sách hiểu cho các đầu ra có điều kiện trong Python. Làm điều gì đó nếu, khác làm điều gì đó khác.
[output if condition else output for l in list]LƯU Ý: Sử dụng cả từ khóa nếu và các từ khóa khác nếu không một cú pháp được ném và Elif không áp dụng ở đây.: Use both if and else keywords otherwise a SyntaxError is thrown and elif does not apply here.
Mã ví dụ đơn giản.
Tạo một danh sách từ 0 đến 9 thông qua một danh sách hiểu được lặp lại thông qua danh sách và xuất ra ‘0, hoặc‘ 1, cho mỗi số trong danh sách. Chúng tôi sử dụng toán tử modulo (%) trả về phần còn lại của một bộ phận.
Một số là ‘0, nếu phần còn lại của bộ phận cho 5 là 0, nếu không, số đó là‘ 1.
>>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 0Output::
Một ví dụ khác: Điều kiện trong danh sách hiểu danh sách: Conditionals in List Comprehension
Sử dụng nếu có sự hiểu biết danh sách để tạo danh sách bởi các mục trong phạm vi từ 0-19 nếu giá trị của mục là chia hết cho 2. to create the list by the items in range from 0-19 if the item’s value is divisible by 2.
>>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 1Đầu ra: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]: [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
Lồng nhau nếu có danh sách hiểu
Nếu y thỏa mãn cả hai điều kiện, y được thêm vào num_list.
>>> ["A" if b=="e" else "d" if True else "x" for b in "comprehension"] ['d', 'd', 'd', 'd', 'd', 'A', 'd', 'A', 'd', 'd', 'd', 'd', 'd'] >>> 2Đầu ra: [0, 10, 20, 30, 40]: [0, 10, 20, 30, 40]
Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về chủ đề danh sách Python này.
Lưu ý: IDE: & NBSP; Pycharm & NBSP; 2021.3.3 (Phiên bản cộng đồng) IDE: PyCharm 2021.3.3 (Community Edition)
Windows 10
Python 3.10.1
Tất cả & nbsp; ví dụ python & nbsp; là trong & nbsp; Python & nbsp; 3, vì vậy có thể khác với các phiên bản Python 2 hoặc nâng cấp. Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.
Bằng cấp về Khoa học máy tính và Kỹ sư: Nhà phát triển ứng dụng và có nhiều ngôn ngữ lập trình kinh nghiệm. Sự nhiệt tình cho công nghệ và thích học kỹ thuật.