Tại sao hiểu danh sách được sử dụng trong python?

Việc hiểu danh sách Python bao gồm các dấu ngoặc chứa biểu thức, được thực thi cho từng phần tử cùng với vòng lặp for để lặp qua từng phần tử trong danh sách Python.  

Khả năng hiểu danh sách của Python cung cấp cú pháp ngắn hơn nhiều để tạo danh sách mới dựa trên các giá trị của danh sách hiện có

Ưu điểm của việc hiểu danh sách

  • Tiết kiệm thời gian và không gian hiệu quả hơn so với vòng lặp
  • Yêu cầu ít dòng mã hơn
  • Chuyển đổi câu lệnh lặp thành công thức

Cú pháp của Danh sách hiểu

danh sách mới = [ biểu thức [phần tử] cho phần tử trong danh sách cũ nếu điều kiện ]

Ví dụ về hiểu danh sách trong Python

ví dụ 1. Lặp lại với khả năng hiểu Danh sách

Python3




[0, 2, 4, 6, 8, 10]
8

[0, 2, 4, 6, 8, 10]
9
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
1
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
3
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
5
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
6
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
8
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
20
[0, 2, 4, 6, 8, 10]
21

 

[0, 2, 4, 6, 8, 10]
22

[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24____09
[0, 2, 4, 6, 8, 10]
26

đầu ra

[0, 2, 4, 6, 8, 10]
9

ví dụ 2. Danh sách chẵn sử dụng khả năng hiểu danh sách

Python3




[0, 2, 4, 6, 8, 10]
27
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
29
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
25
[0, 2, 4, 6, 8, 10]
26
[0, 2, 4, 6, 8, 10]
27
[0, 2, 4, 6, 8, 10]
21
[0, 2, 4, 6, 8, 10]
29
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
8
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
63
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
64

[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
27
[0, 2, 4, 6, 8, 10]
26

đầu ra

[0, 2, 4, 6, 8, 10]

ví dụ 3. Ma trận sử dụng hiểu Danh sách

Python3




[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
69
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
51_______22
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
53
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23______124
[0, 2, 4, 6, 8, 10]
20
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
20
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
56

[0, 2, 4, 6, 8, 10]
23
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58

đầu ra

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]

Danh sách hiểu so với vòng lặp

Có nhiều cách khác nhau để lặp qua một danh sách. Tuy nhiên, cách phổ biến nhất là sử dụng vòng lặp for. Chúng ta hãy xem ví dụ dưới đây

Python3




[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
59

[0, 2, 4, 6, 8, 10]
9
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
72

 

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
73

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
3
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
77
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
78

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[0, 2, 4, 6, 8, 10]
9
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
71

 

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
72

[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24____09
[0, 2, 4, 6, 8, 10]
26

đầu ra

[0, 2, 4, 6, 8, 10]
2

Trên đây là cách triển khai cách tiếp cận truyền thống để lặp qua danh sách, chuỗi, bộ dữ liệu, v.v. Bây giờ việc hiểu danh sách thực hiện nhiệm vụ tương tự và cũng làm cho chương trình đơn giản hơn.  

Khả năng hiểu danh sách chuyển cách tiếp cận lặp truyền thống bằng cách sử dụng vòng lặp for thành một công thức đơn giản, do đó làm cho chúng dễ sử dụng. Dưới đây là cách tiếp cận để lặp qua một danh sách, chuỗi, tuple, v.v. sử dụng hiểu danh sách

Python3




[0, 2, 4, 6, 8, 10]
8

[0, 2, 4, 6, 8, 10]
9
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
1
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
3
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
77
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
64

 

[0, 2, 4, 6, 8, 10]
22

[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24____09
[0, 2, 4, 6, 8, 10]
26

đầu ra

[0, 2, 4, 6, 8, 10]
2

Phân tích thời gian trong việc hiểu danh sách và vòng lặp

Việc hiểu danh sách hiệu quả hơn cả về mặt tính toán cũng như về không gian mã hóa và thời gian so với vòng lặp for. Thông thường, chúng được viết trong một dòng mã. Chương trình dưới đây mô tả sự khác biệt giữa vòng lặp for và khả năng hiểu danh sách dựa trên hiệu suất

Python3




[0, 2, 4, 6, 8, 10]
11

[0, 2, 4, 6, 8, 10]
12
[0, 2, 4, 6, 8, 10]
13

 

 

[0, 2, 4, 6, 8, 10]
14

[0, 2, 4, 6, 8, 10]
15
[0, 2, 4, 6, 8, 10]
16

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[0, 2, 4, 6, 8, 10]
18
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
72

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21______24
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
26

[0, 2, 4, 6, 8, 10]
27
[0, 2, 4, 6, 8, 10]
28
[0, 2, 4, 6, 8, 10]
29
[0, 2, 4, 6, 8, 10]
29
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
8
[0, 2, 4, 6, 8, 10]
26

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[0, 2, 4, 6, 8, 10]
34
[0, 2, 4, 6, 8, 10]
18

 

 

[0, 2, 4, 6, 8, 10]
36

[0, 2, 4, 6, 8, 10]
15
[0, 2, 4, 6, 8, 10]
38

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[0, 2, 4, 6, 8, 10]
34
[0, 2, 4, 6, 8, 10]
29_______029
[0, 2, 4, 6, 8, 10]
29
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
8
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
49

 

 

[0, 2, 4, 6, 8, 10]
50

 

[0, 2, 4, 6, 8, 10]
51

________ 052 ________ 20 ________ 054

[0, 2, 4, 6, 8, 10]
55
[0, 2, 4, 6, 8, 10]
56____029
[0, 2, 4, 6, 8, 10]
29
[0, 2, 4, 6, 8, 10]
59
[0, 2, 4, 6, 8, 10]
26

[0, 2, 4, 6, 8, 10]
61
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
54

 

[0, 2, 4, 6, 8, 10]
64

[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
67
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
69
[0, 2, 4, 6, 8, 10]
70
[0, 2, 4, 6, 8, 10]
71
[0, 2, 4, 6, 8, 10]
72
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
8
[0, 2, 4, 6, 8, 10]
74

 

[0, 2, 4, 6, 8, 10]
75

________ 052 ________ 20 ________ 054

[0, 2, 4, 6, 8, 10]
79
[0, 2, 4, 6, 8, 10]
56
[0, 2, 4, 6, 8, 10]
29
[0, 2, 4, 6, 8, 10]
29
[0, 2, 4, 6, 8, 10]
59
[0, 2, 4, 6, 8, 10]
26

[0, 2, 4, 6, 8, 10]
61
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
54

 

[0, 2, 4, 6, 8, 10]
64

[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
91
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
69
[0, 2, 4, 6, 8, 10]
70
[0, 2, 4, 6, 8, 10]
71
[0, 2, 4, 6, 8, 10]
72
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
8
[0, 2, 4, 6, 8, 10]
74

đầu ra

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
6

Từ chương trình trên, chúng ta có thể thấy việc hiểu danh sách khá nhanh hơn so với vòng lặp for

Hiểu danh sách lồng nhau

Việc hiểu danh sách lồng nhau không là gì ngoài việc hiểu danh sách trong một cách hiểu danh sách khác, khá giống với các vòng lặp lồng nhau. Dưới đây là chương trình thực hiện vòng lặp lồng nhau

Python3




[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
69
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
72

 

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
20
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
08

 

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
10

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
12

 

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
53
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
19
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
08

[0, 2, 4, 6, 8, 10]
27
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
22

 

[0, 2, 4, 6, 8, 10]
23
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58

đầu ra

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
5

Giờ đây, bằng cách sử dụng tính năng hiểu danh sách lồng nhau, cùng một đầu ra có thể được tạo ra với ít dòng mã hơn

Python3




[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
25

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
69
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
51_______22
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
53
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23______124
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
19
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23______124
[0, 2, 4, 6, 8, 10]
20
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58

 

[0, 2, 4, 6, 8, 10]
23
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58

Đầu ra

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
5

Danh sách hiểu và Lambda

Biểu thức Lambda không là gì ngoài các biểu diễn tốc ký của các hàm Python. Sử dụng khả năng hiểu danh sách với lambda tạo ra sự kết hợp hiệu quả. Chúng ta hãy xem các ví dụ dưới đây

Python3




[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
45

________ 246 ________ 20 ________ 672

 

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
6
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
59
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
08

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
59____029
[0, 2, 4, 6, 8, 10]
56
[0, 2, 4, 6, 8, 10]
26

 

[0, 2, 4, 6, 8, 10]
23
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
64

Đầu ra

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7

Ở đây, chúng tôi đã sử dụng vòng lặp for để in bảng 10

Python3




[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
46
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
29
[0, 2, 4, 6, 8, 10]
29
[0, 2, 4, 6, 8, 10]
56
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
6
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
59
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58

 

[0, 2, 4, 6, 8, 10]
23
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
64

đầu ra

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7

Bây giờ ở đây, chúng tôi chỉ sử dụng cách hiểu danh sách để hiển thị bảng 10

Python3




[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
45

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
46_______20
[0, 2, 4, 6, 8, 10]
27
[0, 2, 4, 6, 8, 10]
24
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
86
[0, 2, 4, 6, 8, 10]
24
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
88
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
89
[0, 2, 4, 6, 8, 10]
29
[0, 2, 4, 6, 8, 10]
56
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
92
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
6
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
59
[0, 2, 4, 6, 8, 10]
201

 

[0, 2, 4, 6, 8, 10]
23
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
64

đầu ra

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7

Cuối cùng, chúng tôi sử dụng lambda + hiểu danh sách để hiển thị bảng 10. Sự kết hợp này rất hữu ích để có được các giải pháp hiệu quả với ít dòng mã hơn cho các vấn đề phức tạp

Điều kiện trong danh sách hiểu

Chúng ta cũng có thể thêm các câu điều kiện để hiểu danh sách. Chúng ta có thể tạo một danh sách bằng cách sử dụng phạm vi [], toán tử, v.v. và cal cũng áp dụng một số điều kiện cho danh sách bằng câu lệnh if

Những điểm chính

  • Hiểu danh sách là một phương tiện hiệu quả để mô tả và xây dựng danh sách dựa trên danh sách hiện tại
  • Nói chung, việc hiểu danh sách nhẹ hơn và đơn giản hơn so với các vòng lặp và chức năng hình thành danh sách tiêu chuẩn
  • Chúng ta không nên viết mã dài để hiểu danh sách nhằm đảm bảo mã thân thiện với người dùng
  • Mọi cách hiểu về danh sách có thể được viết lại trong vòng lặp for, nhưng trong ngữ cảnh diễn giải danh sách, mọi vòng lặp for không thể được viết lại

Dưới đây là một số ví dụ mô tả việc sử dụng khả năng hiểu danh sách thay vì cách tiếp cận truyền thống để lặp qua các lần lặp

ví dụ 1. Hiểu danh sách Python bằng cách sử dụng If-else

Python3




[0, 2, 4, 6, 8, 10]
204
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
5
[0, 2, 4, 6, 8, 10]
207
[0, 2, 4, 6, 8, 10]
27
[0, 2, 4, 6, 8, 10]
21
[0, 2, 4, 6, 8, 10]
29
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
8
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
63

[0, 2, 4, 6, 8, 10]
215
[0, 2, 4, 6, 8, 10]
216
[0, 2, 4, 6, 8, 10]
217
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
223
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58

[0, 2, 4, 6, 8, 10]
23____1226

đầu ra

[0, 2, 4, 6, 8, 10]
1

ví dụ 2. IF lồng nhau với khả năng hiểu danh sách

Python3




[0, 2, 4, 6, 8, 10]
204
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
229
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
231
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
235
[0, 2, 4, 6, 8, 10]
26

[0, 2, 4, 6, 8, 10]
215
[0, 2, 4, 6, 8, 10]
27
[0, 2, 4, 6, 8, 10]
231
[0, 2, 4, 6, 8, 10]
29
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
19
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
63
[0, 2, 4, 6, 8, 10]
27
[0, 2, 4, 6, 8, 10]
231
[0, 2, 4, 6, 8, 10]
29
[0, 2, 4, 6, 8, 10]
56
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
63
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
64

[0, 2, 4, 6, 8, 10]
23____1226

đầu ra

[0, 2, 4, 6, 8, 10]
2

ví dụ 3. Hiển thị ô vuông các số từ 1 đến 10

Python3




[0, 2, 4, 6, 8, 10]
255

[0, 2, 4, 6, 8, 10]
256
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
258
[0, 2, 4, 6, 8, 10]
29
[0, 2, 4, 6, 8, 10]
29
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
8
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
263
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
6
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
25
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58

 

[0, 2, 4, 6, 8, 10]
271

[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
273

đầu ra

[0, 2, 4, 6, 8, 10]
3

Ví dụ 4. Hiển thị Chuyển vị của 2D-Ma trận

Python3




[0, 2, 4, 6, 8, 10]
274

[0, 2, 4, 6, 8, 10]
275
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
277
[0, 2, 4, 6, 8, 10]
56
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
280______27
[0, 2, 4, 6, 8, 10]
282
[0, 2, 4, 6, 8, 10]
283

[0, 2, 4, 6, 8, 10]
284
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
5
[0, 2, 4, 6, 8, 10]
286
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
288
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
290
[0, 2, 4, 6, 8, 10]
283

[0, 2, 4, 6, 8, 10]
284
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
5
[0, 2, 4, 6, 8, 10]
294
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
296
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
298
[0, 2, 4, 6, 8, 10]
21

 

[0, 2, 4, 6, 8, 10]
200

[0, 2, 4, 6, 8, 10]
201
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
203
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
207
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
53
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
213
[0, 2, 4, 6, 8, 10]
214
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
63
[0, 2, 4, 6, 8, 10]
216

 

[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
218

đầu ra

[0, 2, 4, 6, 8, 10]
4

Ví dụ 5. Chuyển đổi trường hợp của từng ký tự trong một chuỗi

Python3




[0, 2, 4, 6, 8, 10]
219

[0, 2, 4, 6, 8, 10]
220
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
222

 

[0, 2, 4, 6, 8, 10]
223

[0, 2, 4, 6, 8, 10]
9
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
27
[0, 2, 4, 6, 8, 10]
24
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
86
[0, 2, 4, 6, 8, 10]
24
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
88
[0, 2, 4, 6, 8, 10]
231
[0, 2, 4, 6, 8, 10]
232
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
234
[0, 2, 4, 6, 8, 10]
235
[0, 2, 4, 6, 8, 10]
236
[0, 2, 4, 6, 8, 10]
237

 

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
72

[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24____09
[0, 2, 4, 6, 8, 10]
26

đầu ra

[0, 2, 4, 6, 8, 10]
5

Ví dụ 6. Đảo ngược từng chuỗi trong một tuple

Python3




[0, 2, 4, 6, 8, 10]
243

[0, 2, 4, 6, 8, 10]
9
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
246
[0, 2, 4, 6, 8, 10]
71
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
6
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
64
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
220
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
24
[0, 2, 4, 6, 8, 10]
254
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
256
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
254
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
58

 

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
72

[0, 2, 4, 6, 8, 10]
23
[0, 2, 4, 6, 8, 10]
24____09
[0, 2, 4, 6, 8, 10]
26

đầu ra

[0, 2, 4, 6, 8, 10]
6

Ví dụ 7. Hiển thị tổng các chữ số của tất cả các phần tử lẻ trong danh sách

Python3




[0, 2, 4, 6, 8, 10]
265

[0, 2, 4, 6, 8, 10]
15
[0, 2, 4, 6, 8, 10]
267

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[0, 2, 4, 6, 8, 10]
269
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
63

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
274
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
276
[0, 2, 4, 6, 8, 10]
26

[0, 2, 4, 6, 8, 10]
27
[0, 2, 4, 6, 8, 10]
269
[0, 2, 4, 6, 8, 10]
280
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[0, 2, 4, 6, 8, 10]
282
[0, 2, 4, 6, 8, 10]
283

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
79
[0, 2, 4, 6, 8, 10]
34
[0, 2, 4, 6, 8, 10]
269

 

 

[0, 2, 4, 6, 8, 10]
287

[0, 2, 4, 6, 8, 10]
9
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
5_______1291
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
293
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
295
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
297
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[0, 2, 4, 6, 8, 10]
299
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
7
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
601
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
64

 

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
603

[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
604
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
0
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
606
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
2
[0, 2, 4, 6, 8, 10]
21
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
4
[0, 2, 4, 6, 8, 10]
9
[0, 2, 4, 6, 8, 10]
27
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
612
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
6
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
64

Làm thế nào để hiểu danh sách hoạt động trong Python?

Việc hiểu danh sách Python bao gồm các dấu ngoặc vuông chứa biểu thức, được thực thi cho từng phần tử cùng với vòng lặp for để lặp qua từng phần tử trong danh sách Python. Python List comprehension provides a much more short syntax for creating a new list based on the values of an existing list.

Tại sao bạn có thể sử dụng khả năng hiểu danh sách thay vì vòng lặp trong Python?

Khả năng hiểu danh sách được sử dụng để tạo danh sách dựa trên các lần lặp. Nó cũng có thể được mô tả như đại diện cho các vòng lặp for và if với cú pháp đơn giản và hấp dẫn hơn. Khả năng hiểu danh sách tương đối nhanh hơn so với vòng lặp for. Cú pháp của việc hiểu danh sách thực sự dễ hiểu

Tại sao hiểu danh sách nhanh hơn trong Python?

Danh sách hiểu nhanh hơn vòng lặp for để tạo danh sách. Tuy nhiên, đây là vì chúng tôi đang tạo danh sách bằng cách thêm các phần tử mới vào danh sách đó ở mỗi lần lặp lại .

Lợi ích của việc hiểu chính tả và danh sách là gì?

Khả năng hiểu danh sách và khả năng hiểu từ điển là sự thay thế mạnh mẽ cho các vòng lặp for và cả các hàm lambda. Việc hiểu danh sách và từ điển không chỉ làm cho mã ngắn gọn hơn và dễ đọc hơn , chúng còn nhanh hơn các vòng lặp for truyền thống.

Chủ Đề