Hướng dẫn python fastest way to loop through list - python cách nhanh nhất để lặp qua danh sách

Một giải pháp khả thi khác là sử dụng numpy sẽ rất hiệu quả, đối với các danh sách lớn thậm chí có thể hiệu quả hơn so với việc hiểu danh sách hoặc cho vòng lặp.

import numpy as np

a = np.arange[5.0]   # a --> array[[0., 1., 2., 3., 4.]]

# numpy operates on arrays element by element 
#
b =3.*a              # b --> array[[0., 3., 6., 9., 12.]]

Đây là một hoạt động khá đơn giản nhưng bạn có thể trở nên phức tạp hơn bằng cách sử dụng một mảng chỉ đơn giản là một đối số trong một công thức. Đối với các mảng lớn, điều này có thể nhanh hơn nhiều so với khả năng hiểu danh sách và nó làm cho mã sạch hơn và dễ đọc hơn [không cần tạo chức năng để ánh xạ trong một danh sách hiểu]. Bạn cũng có thể sử dụng lập chỉ mục và cắt để điều chỉnh những gì bạn muốn làm:

Nếu bạn muốn có quyền truy cập vào các vị trí chỉ mục thực tế

# b is as above
for i, x in np.ndenumerate[b]:
    print i, x

Đầu ra của vòng lặp này là:

[0,] 0.0 
[1,] 3.0 
[2,] 6.0 
[3,] 9.0 
[4,] 12.0 

Lưu ý: Chỉ số được trả về dưới dạng Tuple của Numpy để xử lý các kích thước bổ sung. Ở đây chúng tôi chỉ có một chiều duy nhất để bạn phải giải nén tuple để lấy chỉ mục của phần tử.

Đó là cách nhanh nhất để lặp lại danh sách trong Python? Đây là câu trả lời

Nemuel Seretiphoto ở Pexelsphoto in Pexels

Giới thiệu

Trong Python, có những phương pháp khác nhau để lặp lại một danh sách. Mục tiêu của bài viết này là để minh họa các phương pháp này và, chủ yếu, cho thấy cái nào là nhanh nhất.

Việc đánh giá từng phương pháp sẽ được thực hiện trên ba khía cạnh:

  • Nó có phương thức có thể truy xuất giá trị chỉ mục?
  • Nó có phương thức có thể lấy lại giá trị vật phẩm?
  • Tốc độ của phương pháp

Danh sách được sử dụng để kiểm tra đã được tạo theo cách sau và có 10000 thanh ghi.

Mỗi phương pháp đã được định thời với chức năng này.

Ở đây bạn cũng có thể tìm thấy đặc điểm kỹ thuật của máy tính xách tay và phần mềm tôi đã sử dụng để thực hiện các thử nghiệm này.

For-loop

Phương pháp đầu tiên được thử nghiệm là vòng lặp bình thường, phương pháp đầu tiên được học bởi hầu hết mọi người đang tiếp cận thế giới Python.

Phương pháp này chỉ cho phép truy xuất mục, nhưng không chỉ mục. Ở phía tốc độ, nó đạt được 0,237 ms.

Phạm vi cho vòng lặp

Phương pháp thứ hai là với việc sử dụng phương pháp phạm vi.

Phương pháp này cho phép truy xuất các chỉ mục, nhưng không phải các mục trong danh sách. Ở phía tốc độ, nó đạt được 0,554 ms.

Liệt kê cho vòng lặp

Phương pháp thứ ba là với việc sử dụng phương pháp liệt kê, trong cộng đồng Python theo cách này được coi là thực sự pythonic và cho phép lấy cả hai chỉ mục và thời gian cùng một lúc.

Phương pháp này đã cần 0,862 ms để xử lý danh sách.

Trong khi lặp lại

Một phương pháp khác được thử nghiệm là vòng lặp trong khi, nhưng nó không đạt được kết quả tốt và nó không thích nghi với việc lặp lại trong danh sách, như bạn sẽ tưởng tượng.

Nó chỉ có thể lấy chỉ số và đạt được thời gian 2,747 ms.

Phạm vi vòng lặp với quyền truy cập vào mục

Phương pháp này rất giống với vòng lặp phạm vi, do đó, dòng tương tự, thay đổi duy nhất là chúng tôi thực hiện quyền truy cập vào đối tượng bên trong vòng lặp. Điều này cho phép có thể truy xuất không chỉ chỉ mục, mà còn cả mục.

Điều này gây ra rắc rối trong thời gian tốc độ, điều trị 1.368 ms mà nó đạt được trong trường hợp này, hơn 2 lần so với phiên bản khác chỉ lấy chỉ số.

Zip for-loop

Phương pháp này là hỗn hợp của phương pháp thứ nhất và thứ hai được minh họa ở trên, nó sử dụng hàm zip để kết hợp chỉ mục với các mục. Điều này cho phép để có được cả các chỉ mục và các mục.

Thời gian đạt được là 0,901 ms.

Bản đồ cho vòng lặp

Kỹ thuật này đã được xây dựng với việc sử dụng chức năng MAP, cho phép ánh xạ một trình lặp và xử lý nó với việc sử dụng hàm.

Kỹ thuật này đạt được 1,518 ms.

Tóm tắt lại

Ở đây bạn có thể tìm thấy một bản tóm tắt cho các phương pháp khác nhau đã được thử với biểu đồ thanh hiển thị tốc độ khác nhau giữa phương thức.

        Method          Index   Item    Speed    
--------------------- ------- ------ ----------
for-loop no yes 0.237 ms
Range for-loop yes no 0.554 ms
Enumerate for-loop yes yes 0.862 ms
while-loop yes no 2.747 ms
Range for-loop item yes yes 1.368 ms
Zip for-loop yes yes 0.901 ms
map loop no yes 1.518 ms

Một mẫu mà nó đáng chú ý, hầu hết các phương thức đã hoàn tất [truy xuất cả chỉ mục và mục] là thời gian xử lý nhiều hơn.

Sự kết luận

Các kết luận có thể được tổng hợp trong hai điểm chính sau:

  • Vòng lặp cổ điển thực sự là nhanh nhất
  • Phương pháp sử dụng hàm liệt kê là nhanh nhất giữa các phương pháp cung cấp tất cả các mục và chỉ mục.

Làm thế nào để bạn lặp lại thông qua một danh sách nhanh chóng?

6 cách để lặp lại thông qua một danh sách trong Python..
Sử dụng cho vòng lặp. Phương pháp dễ nhất để lặp lại danh sách trong lập trình Python là bằng cách sử dụng chúng cho một vòng lặp. ....
Sử dụng hàm vòng và phạm vi []. ....
Sử dụng trong khi vòng lặp. ....
Sử dụng danh sách hiểu. ....
Sử dụng hàm liệt kê []. ....
Sử dụng chức năng numpy ..

Cách nhanh nhất để lặp trong Python là gì?

Một cách nhanh hơn để lặp trong Python là sử dụng các chức năng tích hợp.Trong ví dụ của chúng tôi, chúng tôi có thể thay thế vòng lặp cho chức năng tổng.Hàm này sẽ tổng hợp các giá trị bên trong phạm vi số.using built-in functions. In our example, we could replace the for loop with the sum function. This function will sum the values inside the range of numbers.

Nó có nhanh hơn để lặp lại thông qua danh sách hoặc đặt python không?

Chúng tôi biết làm thế nào trong Python, bộ có thể lặp lại nhanh hơn danh sách.Lý do đằng sau nó là gì?Đặt được thực hiện bởi cấu trúc dữ liệu bảng băm.Vì lý do này, việc kiểm tra xem một giá trị cụ thể có tồn tại trong tập hợp hay không, là thời gian O [1] tức thì, không cần lặp lại.set can be iterate faster than list. What's the reason behind it? Set is implemented by a hash-table data structure. For this reason, checking if a specific value exists in the set, is instant O[1] time, requires no iteration.

Bạn có thể lặp qua một danh sách trong Python không?

Bạn có thể lặp qua các mục danh sách bằng cách sử dụng vòng lặp thời gian.Sử dụng hàm Len [] để xác định độ dài của danh sách, sau đó bắt đầu ở 0 và lặp theo cách của bạn thông qua các mục danh sách bằng cách tham khảo các chỉ mục của chúng.Hãy nhớ tăng chỉ số lên 1 sau mỗi lần lặp.. Use the len[] function to determine the length of the list, then start at 0 and loop your way through the list items by referring to their indexes. Remember to increase the index by 1 after each iteration.

Bài Viết Liên Quan

Chủ Đề