Làm thế nào để tăng một biến trong python hiểu danh sách

Sử dụng khả năng hiểu danh sách, chúng tôi muốn nối bất kỳ giá trị nào lớn hơn mười vào danh sách mới. Chúng ta có thể làm điều này như sau

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

Ngoài

[11, 19, 25, 12]

Learn Data Science with

Giải pháp này về cơ bản tuân theo quy trình tương tự như sử dụng vòng lặp

[11, 19, 25, 12]

Learn Data Science with

8 để thực hiện công việc, nhưng sử dụng khả năng hiểu danh sách thường có thể là một kỹ thuật gọn gàng và hiệu quả hơn. Ví dụ dưới đây cho thấy cách chúng ta có thể tạo danh sách mới bằng cách sử dụng vòng lặp
[11, 19, 25, 12]

Learn Data Science with

8

new_list = []
for num in num_list:
    if num > 10:
        new_list.append[num]
new_list

Learn Data Science with

Ngoài

[11, 19, 25, 12]

Learn Data Science with

Sử dụng khả năng hiểu danh sách thay vì vòng lặp

[11, 19, 25, 12]

Learn Data Science with

8, chúng tôi đã quản lý để gói bốn dòng mã vào một câu lệnh rõ ràng

Trong bài viết này, trước tiên chúng ta sẽ xem xét các cách khác nhau để sử dụng tính năng hiểu danh sách để tạo danh sách mới. Sau đó, chúng ta sẽ xem lợi ích của việc sử dụng khả năng hiểu danh sách là gì. Cuối cùng, chúng ta sẽ xem cách giải quyết vấn đề hiểu nhiều danh sách

Cách hiểu danh sách hoạt động

Khả năng hiểu danh sách hoạt động bằng cách dịch các giá trị từ danh sách này sang danh sách khác bằng cách đặt câu lệnh

[11, 19, 25, 12]

Learn Data Science with

8 bên trong một cặp dấu ngoặc, được gọi chính thức là biểu thức trình tạo

Trình tạo là một đối tượng có thể lặp lại, mang lại một loạt các giá trị. Hãy xem xét ví dụ sau, trong đó

new_list = []
for num in num_list:
    if num > 10:
        new_list.append[num]
new_list

Learn Data Science with

2 là trình tạo của chúng tôi và
new_list = []
for num in num_list:
    if num > 10:
        new_list.append[num]
new_list

Learn Data Science with

3 là sản lượng

[11, 19, 25, 12]

Learn Data Science with

0

Ngoài

[11, 19, 25, 12]

Learn Data Science with

1

Trong trường hợp này, Python đã lặp qua từng mục trong

[11, 19, 25, 12]

Learn Data Science with

7, lưu trữ tạm thời các giá trị bên trong biến
new_list = []
for num in num_list:
    if num > 10:
        new_list.append[num]
new_list

Learn Data Science with

3. Chúng tôi chưa thêm bất kỳ điều kiện nào vào phần hiểu danh sách, vì vậy tất cả các giá trị được lưu trữ trong danh sách mới

Câu lệnh điều kiện trong việc hiểu danh sách

Hãy thử thêm vào một câu lệnh

new_list = []
for num in num_list:
    if num > 10:
        new_list.append[num]
new_list

Learn Data Science with

6 để việc hiểu chỉ thêm các số lớn hơn bốn

[11, 19, 25, 12]

Learn Data Science with

5

Ngoài

[11, 19, 25, 12]

Learn Data Science with

6

Hình ảnh dưới đây đại diện cho quá trình tiếp theo trong phần hiểu danh sách trên

Learn Data Science with

7 bên trong cách hiểu danh sách

[11, 19, 25, 12]

Learn Data Science with

80

Ngoài

[11, 19, 25, 12]

Learn Data Science with

81

Nhưng chúng ta cũng có thể viết điều này mà không cần

new_list = []
for num in num_list:
    if num > 10:
        new_list.append[num]
new_list

Learn Data Science with

7 như

[11, 19, 25, 12]

Learn Data Science with

82

Ngoài

[11, 19, 25, 12]

Learn Data Science with

81

Khi sử dụng câu điều kiện, Python sẽ kiểm tra xem câu lệnh

new_list = []
for num in num_list:
    if num > 10:
        new_list.append[num]
new_list

Learn Data Science with

6 của chúng ta trả về
[11, 19, 25, 12]

Learn Data Science with

0 hay
[11, 19, 25, 12]

Learn Data Science with

1 cho mỗi kết quả. Khi câu lệnh
new_list = []
for num in num_list:
    if num > 10:
        new_list.append[num]
new_list

Learn Data Science with

6 trả về
[11, 19, 25, 12]

Learn Data Science with

0, kết quả được thêm vào danh sách mới

Thêm chức năng để hiểu danh sách

Khả năng hiểu danh sách không chỉ giới hạn trong việc lọc ra các giá trị danh sách không mong muốn mà chúng ta còn có thể sử dụng chúng để áp dụng chức năng cho các giá trị được thêm vào. Ví dụ: giả sử chúng tôi muốn tạo một danh sách chứa các giá trị bình phương từ danh sách ban đầu

[11, 19, 25, 12]

Learn Data Science with

84

Ngoài

[11, 19, 25, 12]

Learn Data Science with

85

Chúng tôi cũng có thể kết hợp bất kỳ chức năng bổ sung nào với các toán tử so sánh. Chúng ta đã sử dụng rất nhiều từ

[11, 19, 25, 12]

Learn Data Science with

7, vì vậy hãy thay đổi nó và bắt đầu sử dụng một danh sách khác cho các ví dụ của chúng ta

[11, 19, 25, 12]

Learn Data Science with

86

Ngoài

[11, 19, 25, 12]

Learn Data Science with

87

Trong ví dụ trên, khả năng hiểu danh sách của chúng tôi đã bình phương bất kỳ giá trị nào trong

[11, 19, 25, 12]

Learn Data Science with

5 nằm trong khoảng từ ba mươi đến năm mươi. Để giúp chứng minh những gì đang xảy ra ở trên, hãy xem sơ đồ bên dưới

Learn Data Science with

6,
[11, 19, 25, 12]

Learn Data Science with

7 và
[11, 19, 25, 12]

Learn Data Science with

8

Giống như trong ví dụ trên khi sử dụng

new_list = []
for num in num_list:
    if num > 10:
        new_list.append[num]
new_list

Learn Data Science with

7, chúng ta cũng có thể sử dụng
[11, 19, 25, 12]

Learn Data Science with

6

[11, 19, 25, 12]

Learn Data Science with

88

Ngoài

[11, 19, 25, 12]

Learn Data Science with

89

Sử dụng

[11, 19, 25, 12]

Learn Data Science with

7, chúng tôi cũng có thể kiểm tra các danh sách khác

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

0

Ngoài

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

1

Tương tự như vậy,

[11, 19, 25, 12]

Learn Data Science with

02 cũng có thể

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

2

Ngoài

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

3

Cuối cùng, chúng ta có thể sử dụng các câu lệnh

new_list = []
for num in num_list:
    if num > 10:
        new_list.append[num]
new_list

Learn Data Science with

6 trước các biểu thức trình tạo trong phần hiểu danh sách. Bằng cách này, chúng ta có thể cho Python biết cách xử lý các giá trị khác nhau

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

4

Ngoài

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

5

Ví dụ trên lưu trữ các giá trị trong danh sách mới của chúng tôi nếu chúng lớn hơn bốn mươi; . Python lưu trữ số không ở vị trí của chúng đối với các giá trị không lớn hơn bốn mươi, theo hướng dẫn của

[11, 19, 25, 12]

Learn Data Science with

05. Xem hình ảnh bên dưới để biết hình ảnh đại diện cho những gì đang xảy ra

Learn Data Science with

6

Ngoài

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

7

Thứ tự của các vòng lặp trong kiểu hiểu danh sách này hơi phản trực giác và khó nhớ, vì vậy hãy chuẩn bị để tra cứu lại trong tương lai. Dù vậy, cú pháp làm phẳng danh sách vẫn hữu ích cho các bài toán khác yêu cầu kiểm tra hai danh sách để tìm giá trị

danh sách lồng nhau

Chúng ta có thể sử dụng nhiều khả năng hiểu danh sách khi có liên quan đến danh sách lồng nhau. Giả sử chúng ta có một danh sách các danh sách được điền bằng các giá trị kiểu chuỗi. Nếu chúng tôi muốn chuyển đổi các giá trị này từ kiểu chuỗi sang kiểu số nguyên, chúng tôi có thể thực hiện việc này bằng cách sử dụng nhiều cách hiểu danh sách như sau

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

8

Ngoài

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

9

khả năng đọc

Vấn đề với việc sử dụng nhiều cách hiểu danh sách là chúng có thể khó đọc, gây khó khăn hơn cho các nhà phát triển khác và chính bạn trong tương lai. Để chứng minh điều này, đây là giải pháp đầu tiên trông như thế nào khi kết hợp khả năng hiểu danh sách với vòng lặp

[11, 19, 25, 12]

Learn Data Science with

8

[11, 19, 25, 12]

Learn Data Science with

0

Ngoài

new_list = [num for num in num_list if num > 10]
new_list

Learn Data Science with

9

Giải pháp kết hợp của chúng tôi không bóng bẩy khi nhìn vào, nhưng cũng dễ dàng hơn để phân tách và tìm ra điều gì đang xảy ra đằng sau hậu trường. Không có giới hạn về mức độ hiểu nhiều danh sách có thể đi sâu. Nếu

[11, 19, 25, 12]

Learn Data Science with

07 có nhiều danh sách được lồng trong các danh sách lồng nhau của nó, chúng ta có thể thực hiện chuyển đổi số nguyên như sau

[11, 19, 25, 12]

Learn Data Science with

2

Ngoài

[11, 19, 25, 12]

Learn Data Science with

3

Như ví dụ cho thấy, việc hiểu nhiều danh sách của chúng tôi hiện đã trở nên rất khó đọc. Người ta thường đồng ý rằng việc hiểu nhiều danh sách không nên đi sâu hơn hai cấp độ; . Để chứng minh quan điểm, đây là cách chúng ta có thể sử dụng vòng lặp for để giải quyết vấn đề trên

[11, 19, 25, 12]

Learn Data Science with

4

Ngoài

[11, 19, 25, 12]

Learn Data Science with

3

Kiểm tra tốc độ. Danh sách hiểu vs. cho vòng lặp

Khi làm việc với các danh sách trong Python, có thể bạn sẽ thường thấy mình trong các tình huống cần dịch các giá trị từ danh sách này sang danh sách khác dựa trên các tiêu chí cụ thể

Nói chung, nếu bạn đang làm việc với các tập dữ liệu nhỏ, thì sử dụng vòng lặp

[11, 19, 25, 12]

Learn Data Science with

8 thay vì hiểu danh sách không phải là tận thế. Tuy nhiên, khi kích thước tập dữ liệu của bạn bắt đầu tăng lên, bạn sẽ nhận thấy rằng việc xử lý từng mục một trong danh sách có thể mất nhiều thời gian

Hãy tạo một danh sách mười nghìn số ngẫu nhiên, có giá trị từ một đến một triệu và lưu trữ danh sách này dưới dạng

[11, 19, 25, 12]

Learn Data Science with

7. Sau đó, chúng tôi có thể sử dụng vòng lặp
[11, 19, 25, 12]

Learn Data Science with

8 và khả năng hiểu danh sách để tạo danh sách mới chứa các giá trị
[11, 19, 25, 12]

Learn Data Science with

7 lớn hơn nửa triệu. Cuối cùng, sử dụng
[11, 19, 25, 12]

Learn Data Science with

12, chúng ta có thể so sánh tốc độ của hai cách tiếp cận

[11, 19, 25, 12]

Learn Data Science with

6

Ngoài

gõmicro giây1danh sách hiểu288. 850 cho vòng lặp416. 94

Giải pháp hiểu danh sách chạy nhanh gấp đôi, do đó, nó không chỉ sử dụng ít mã hơn mà còn nhanh hơn nhiều. Với ý nghĩ đó, cũng cần lưu ý rằng các vòng lặp

[11, 19, 25, 12]

Learn Data Science with

8 có thể dễ đọc hơn nhiều trong một số trường hợp nhất định, chẳng hạn như khi sử dụng nhiều cách hiểu danh sách

Cuối cùng, nếu bạn đang ở một vị trí cần phải hiểu nhiều danh sách, bạn có muốn ưu tiên hiệu suất hơn khả năng đọc hay không là tùy thuộc vào bạn.

Tóm lược

Khả năng hiểu danh sách là một công cụ tuyệt vời để tạo danh sách mới dựa trên yêu cầu của bạn. Chúng nhanh hơn nhiều so với sử dụng vòng lặp

[11, 19, 25, 12]

Learn Data Science with

8 và có thêm lợi ích là làm cho mã của bạn trông gọn gàng và chuyên nghiệp

Đối với những trường hợp bạn đang làm việc với danh sách lồng nhau, bạn cũng có thể hiểu nhiều danh sách. Khái niệm sử dụng khả năng hiểu lúc đầu có vẻ hơi phức tạp, nhưng một khi bạn đã hiểu chúng, bạn sẽ không bao giờ nhìn lại

Bắt đầu học miễn phí

Nhận thông tin cập nhật trong hộp thư đến của bạn

Tham gia cùng hơn 7.500 người học khoa học dữ liệu

Bài viết gần đây

Ưu đãi khóa học tốt nhất cho Thứ Sáu Đen và Thứ Hai Điện Tử 2022Hàm sigmoidchấm sản phẩm7 khóa học về trí tuệ nhân tạo [AI] tốt nhất năm 2022

Các khóa học Python tốt nhất theo phân tích dữ liệu

Trong số khoảng 3000 dịch vụ, đây là những khóa học Python tốt nhất theo phân tích này

xem bài viết

Nhận thông tin cập nhật trong hộp thư đến của bạn

Tham gia cùng hơn 7.500 người học khoa học dữ liệu

Gặp gỡ các tác giả

Nhà khoa học dữ liệu Alfie Grace

Alfie tốt nghiệp Thạc sĩ Kỹ thuật Cơ khí tại Đại học College London. Anh ấy hiện đang làm Nhà khoa học dữ liệu tại Square Enix. Tìm anh ấy trên LinkedIn

Bạn có thể định nghĩa một biến trong Python hiểu danh sách không?

Bạn không thể làm điều đó . Bài tập luôn là một câu lệnh trong Python; .

Bạn có thể thêm vào phần hiểu danh sách Python không?

Tổng quan ngắn gọn về Danh sách trong Python . Bạn có thể hoàn thành tác vụ này mà không phải thực hiện nhiều lệnh gọi tới. phương thức append[] . Tương tự, bạn có thể sử dụng vòng lặp for để nối nhiều mục vào danh sách.

Chủ Đề