Hướng dẫn are sets faster than lists python - được đặt nhanh hơn so với danh sách python
Những gì nhanh hơn .. Show
Như Wikipedia nói rằng thử nghiệm thành viên của người Viking với các bộ và từ điển nhanh hơn nhiều, O (1), so với các chuỗi tìm kiếm, O (n). Khi thử nghiệm một trong một trong bv, B phải là một tập hợp hoặc từ điển thay vì một danh sách hoặc tuple.Membership testing with sets and dictionaries is much faster, O(1), than searching sequences, O(n). When testing “a in b”, b should be a set or dictionary instead of a list or tuple.” Bạn phải sử dụng các bộ thay thế danh sách bất cứ khi nào tốc độ quan trọng trong mã của bạn, nhưng bạn đã bao giờ tự hỏi tại sao các bộ nhanh hơn nhiều so với danh sách. Vì vậy, hãy để Lừa xem chính xác những gì đang diễn ra đằng sau hậu trường trong Python để làm cho bộ nhanh hơn? Các bộ được triển khai bằng các bảng băm, vì vậy bất cứ khi nào bạn thêm một đối tượng vào một tập hợp, vị trí trong bộ nhớ của đối tượng Và khi kiểm tra tư cách thành viên, tất cả những gì cần phải thực hiện về cơ bản là để xem nếu đối tượng ở vị trí được xác định bởi băm của nó, do đó, tốc độ của thao tác này không phụ thuộc vào kích thước của tập hợp. Đối với các danh sách, ngược lại, toàn bộ danh sách cần được tìm kiếm, sẽ trở nên chậm hơn khi danh sách phát triển. lists, in contrast, the whole list needs to be searched, which will become slower as the list grows. Hãy để hiểu điều này thông qua một ví dụ:
Danh sách Python được triển khai dưới dạng dynamic arrays và các bộ được triển khai dưới dạng hash tables.lists are implemented as dynamic arrays and sets are implemented as a hash tables.Bạn phải giữ một điều quan trọng nhất trong tâm trí của mình: bộ đó không nhanh hơn danh sách nói chung - Tinh hoàn thành viên nhanh hơn cho các bộ, và việc loại bỏ một yếu tố và miễn là bạn không cần các hoạt động này, Thường nhanh hơn.membership testis faster for sets, and so is removing an element , and As long as you don’t need these operations, lists are often faster. Và khi bạn đi sâu hơn trong việc này, bạn sẽ biết rằng tập hợp so với danh sách phụ thuộc phần lớn vào hoạt động chúng ta đang thực hiện như thế nào,
Lưu ý: Các bộ aren nhanh hơn các danh sách nói chung - kiểm tra thành viên nhanh hơn cho các bộ, và do đó sẽ loại bỏ một phần tử. Miễn là bạn không cần các hoạt động này, danh sách thường nhanh hơn.Sets aren’t faster than lists in general — membership test is faster for sets, and so is removing an element. As long as you don’t need these operations, lists are often faster. Hy vọng bài viết này có thể hữu ích cho bạn.Tiếp tục học hỏi!
1248 Phiếu bầu1045 Câu trả lờiмя и т abusechallengesfakelet'smoderatorsreportsafestaytogether challenges fake let's moderators report safe stay together tiếng Nga Benka
309 Phiếu bầu1313 Câu trả lờiмя и т tiếng Nga challenge wap Benka 7/6/2017 5:02:16 PM
12 Phiếu bầu46 Câu trả lờiмя и т tiếng Nga Benka 7/6/2017 5:02:16 PM
559 Phiếu bầu14120 Câu trả lờiмя и т tiếng Nga codes popular share upvotes Benka 7/6/2017 5:02:16 PM
1546 Phiếu bầu30542 Câu trả lờiмя и т tiếng Nga Benka 7/6/2017 5:02:16 PM
15 Phiếu bầu22 Câu trả lờiмя и т jsjsonnpmpackage.jsonsemver json npm package.json semver tiếng Nga Benka
5 Phiếu bầu31 Câu trả lờiмя и т tiếng Nga Benka 7/6/2017 5:02:16 PM
3068 Phiếu bầu1593 Câu trả lờiмя и т tiếng Nga rules welcome Benka 7/6/2017 5:02:16 PM
6 Phiếu bầu19 Sự khác biệt trong ‘~ và và‘^là gì?Matthias 4/9/2021 1:48:15 PM searching sorting Hai câu trả lời khác nhau JavaScript
7 Phiếu bầu40 Câu trả lờiмя и т tiếng Nga objects Benka 7/6/2017 5:02:16 PM
3 Phiếu bầu29 Câu trả lờiмя и т tiếng Nga Benka 7/6/2017 5:02:16 PM
24 Phiếu bầu31 Câu trả lờiмя и т tiếng Nga dm notifications Benka 7/6/2017 5:02:16 PM
0 Phiếu bầu11 Câu trả lờiмя и т tiếng Nga and flowchart Benka 7/6/2017 5:02:16 PM
4 Phiếu bầu17 Câu trả lờiмя и т c# tiếng Nga Benka
Các hoạt động được thiết lập có nhanh hơn trong 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.
Danh sách hoặc tuple nhanh hơn hoặc được đặt trong Python?Tạo một tuple nhanh hơn so với việc tạo một danh sách.Tạo danh sách chậm hơn vì hai khối bộ nhớ cần được truy cập.Một phần tử trong một tuple không thể được loại bỏ hoặc thay thế.Một yếu tố trong danh sách có thể được xóa hoặc thay thế.. Creating a list is slower because two memory blocks need to be accessed. An element in a tuple cannot be removed or replaced. An element in a list can be removed or replaced.
Danh sách hoặc Tuple hoặc bộ nhanh hơn là gì?Tuples nhanh hơn danh sách.Chúng ta nên sử dụng một tuple thay vì một danh sách nếu chúng ta xác định một tập hợp các giá trị không đổi và tất cả những gì chúng ta sẽ làm với nó là lặp đi lặp lại thông qua nó.Nếu chúng ta cần một loạt các phần tử được sử dụng làm khóa từ điển, chúng ta có thể sử dụng các bộ dữ liệu.. We should use a Tuple instead of a List if we are defining a constant set of values and all we are ever going to do with it is iterate through it. If we need an array of elements to be used as dictionary keys, we can use Tuples.
Danh sách hoặc bộ nào hiệu quả hơn?Bộ sử dụng băm để thực hiện các cái nhìn giúp chúng nhanh hơn danh sách về vấn đề này.(Trong ví dụ thực tế, mã sử dụng danh sách mất khoảng 45 giây để chạy, trong khi mã với các bộ mất ít hơn một phần mười giây!) in this regard. (In the practical example the code using lists took about 45 seconds to run, whereas the code with sets took less than a tenth of a second!) |