Bộ dữ liệu nào nhanh hơn hoặc được đặt trong python?
Các bộ trong Python thường được sử dụng cho hai mục đích. 1. Xóa các mục trùng lặp trong bộ sưu tập 2. Đối với thử nghiệm thành viên. Theo tư cách thành viên, ở đây chúng tôi muốn tìm sự tồn tại của phần tử trong một bộ sưu tập Trọng tâm của bài đăng này là đánh giá hiệu suất của danh sách, bộ dữ liệu và cấu trúc dữ liệu thiết lập đối với nhau trên cơ sở kiểm tra tư cách thành viên. Tôi phải làm nó như thế nào? . bắt đầu = ngày giờ. now() nếu dữ liệu ở dạng. in "" end = datetime. now() print end-start calc(9999, listA) calc(9999, tupA) calc(9999, setA) [/sourcecode] Dưới đây là thời gian trung bình của 10 lần lặp cho các danh sách/bộ và bộ để kiểm tra tư cách thành viên của . 8 0. 8 1. 9 Tìm kiếm 99999 trong bộ 10000000 bộ 2. 6 2. 8 1. 7 Tìm kiếm 999999 trong bộ danh sách 10000000 bộ 21. 4 21. 6 0. 8 Kết luận 1. để kiểm tra tư cách thành viên của các phần tử khi bắt đầu bộ sưu tập, danh sách hoặc bộ dữ liệu hoạt động tốt hơn 100% so với bộ 2. Ngay khi bạn bắt đầu kiểm tra tư cách thành viên của các phần tử ở giữa hoặc cuối tập hợp, các bộ hoạt động tốt hơn 40% – 1800% so với danh sách hoặc bộ. Bây giờ bạn đã có một ý tưởng hợp lý tại sao bạn nên nghĩ đến việc sử dụng các bộ cho các bộ sưu tập lớn…
Các bộ dữ liệu là các kiểu dữ liệu không thể thay đổi được lưu trữ trong một khối bộ nhớ nên không cần thêm dung lượng để lưu trữ các đối tượng mới Show
Nhưng danh sách là các kiểu dữ liệu có thể thay đổi và được phân bổ thành hai khối trong đó khối cố định chứa tất cả thông tin đối tượng và khối có kích thước thay đổi cho dữ liệu Có một chút khác biệt về tốc độ lập chỉ mục của danh sách và bộ vì bộ dữ liệu sử dụng ít con trỏ hơn khi lập chỉ mục so với danh sách. Do có ít con trỏ hơn, cơ chế truy cập theo bộ thường nhanh hơn trong danh sách Chương trình sau đây so sánh điểm chuẩn tốc độ cho danh sách và bộ dữ liệu Danh sách & So sánh tốc độ Tuple
đầu raRun 1: ------------ Tuple = 2.307861 seconds List = 2.362857 seconds Run 2: ------------ Tuple = 2.339859 seconds List = 2.340859 seconds Run 3: ------------ Tuple = 2.335859 seconds List = 2.330854 seconds Run 4: ------------ Tuple = 2.395857 seconds List = 2.655840 seconds Run 5: ------------ Tuple = 2.291866 seconds List = 2.309857 seconds Kết quả của chương trình trên cho thấy, thời gian truy cập bộ dữ liệu nhanh hơn đối với 4 bài kiểm tra trong số 5 bài kiểm tra đã thực hiện so với danh sách Vì vậy, chúng ta có thể nói rằng tuple nhanh hơn một chút so với danh sách. Chương trình này được thực hiện trên Intel core I3, 6GB RAM & Python 3. 8. 2. Trên máy của bạn, bạn sẽ nhận được kết quả hơi khác Mọi thứ trong Python đều là đối tượng. Mỗi đối tượng có các thuộc tính và phương thức dữ liệu riêng được liên kết với nó. Để sử dụng một đối tượng hiệu quả và phù hợp, chúng ta nên biết cách tương tác với chúng Danh sách, bộ dữ liệu và bộ là 3 loại đối tượng quan trọng. Điểm chung của chúng là chúng được sử dụng làm cấu trúc dữ liệu. Để tạo ra các sản phẩm mạnh mẽ và hoạt động tốt, người ta phải biết rất rõ cấu trúc dữ liệu của ngôn ngữ lập trình Trong bài đăng này, chúng ta sẽ xem cách các cấu trúc này thu thập và lưu trữ dữ liệu cũng như các thao tác chúng ta có thể thực hiện với chúng. Chúng ta sẽ thấy cả sự khác biệt và tương đồng giữa chúng Hãy bắt đầu bằng cách giải thích ngắn gọn những đồ vật này là gì. Sau đó chúng tôi sẽ làm các ví dụ để đi vào chi tiết cho từng cái
Bây giờ chúng ta có một sự hiểu biết cơ bản về những đối tượng này là gì. Các ví dụ sau sẽ trình bày cách chúng ta có thể tương tác với các đối tượng này 1. Danh sách vs Tập hợpChúng ta có thể tạo một danh sách hoặc tập hợp dựa trên các ký tự trong một chuỗi. Các chức năng để sử dụng là các chức năng danh sách và thiết lập text = "Hello World!"print(list(text)) Sự khác biệt trong danh sách kết quả và thiết lập các đối tượng
2. Danh sách so với Tập hợp - lập chỉ mụcTrong ví dụ trước, chúng ta đã thấy rằng các tập hợp không có thứ tự. Do đó, chúng ta không thể thực hiện việc cắt hoặc lập chỉ mục trên các tập hợp như chúng ta làm với danh sách text = "Hello World!"list_a = list(text) Việc cắt hoặc lập chỉ mục trên các tập hợp làm tăng TypeError vì đây là sự cố liên quan đến thuộc tính của loại đối tượng tập hợp 3. Danh sách so với TupleSự khác biệt giữa danh sách và tuple là khả năng biến đổi. Không giống như danh sách, bộ dữ liệu là bất biến. Chẳng hạn, chúng ta có thể thêm các mục vào danh sách nhưng không thể làm điều đó với các bộ dữ liệu list_a = [1,2,3,4] Các chức năng thay đổi một bộ sưu tập (e. g. nối thêm, xóa, mở rộng, bật) không áp dụng cho bộ dữ liệu 4. Tuple - các phần tử có thể thay đổiTính bất biến có thể là đặc điểm dễ nhận biết nhất của các bộ dữ liệu. Chúng tôi không thể gán cho các mục riêng lẻ của một bộ dữ liệu tuple_a = (3, 5, 'x', 5) Mặc dù các bộ dữ liệu là bất biến, nhưng chúng có thể chứa các phần tử có thể thay đổi như danh sách hoặc tập hợp tuple_a = ([1,3], 'a', 'b', 8) 5. chức năng xóaHàm Del là viết tắt của từ delete nên dùng để xóa một mục khỏi bộ sưu tập. Nó lấy chỉ mục của mục cần xóa Vì các bộ không có thứ tự nên chúng không có chỉ mục các mục trong đó. Do đó, chức năng del không thể được sử dụng trên một tập hợp list_a = [1, 2, 3, 4] Ghi chú. Có hai cách để lập chỉ mục một danh sách
6. Loại bỏ chức năngKhông giống như hàm del, hàm xóa có thể được sử dụng trên cả danh sách và tập hợp. Chúng tôi chuyển mục cần xóa thay vì chỉ mục của nó ________số 87. hủy bỏ chức năngLoại bỏ cũng có thể được sử dụng để xóa một mục khỏi một bộ. Danh sách không có thuộc tính loại bỏ mặc dù Sự khác biệt giữa "xóa" và "loại bỏ" được quan sát thấy khi chúng tôi cố gắng xóa một mục không có trong tập hợp. Loại bỏ sẽ gây ra lỗi nhưng không có gì xảy ra với loại bỏ #remove 8. chức năng bật lênChức năng pop có thể được sử dụng trên cả danh sách và bộ. Tuy nhiên, nó hoạt động khác nhau trên danh sách và tập hợp Theo mặc định, hàm pop xóa mục cuối cùng khỏi danh sách và trả về mục đó. Vì vậy, chúng ta có thể gán nó cho một biến. Chúng ta có thể chuyển một chỉ mục cho hàm pop loại bỏ một phần tử tại một chỉ mục cụ thể. Chẳng hạn, pop(-2) sẽ xóa mục thứ hai từ cuối Run 1: ------------ Tuple = 2.307861 seconds List = 2.362857 seconds Run 2: ------------ Tuple = 2.339859 seconds List = 2.340859 seconds Run 3: ------------ Tuple = 2.335859 seconds List = 2.330854 seconds Run 4: ------------ Tuple = 2.395857 seconds List = 2.655840 seconds Run 5: ------------ Tuple = 2.291866 seconds List = 2.309857 seconds0 Khi được sử dụng trên một tập hợp, hàm pop sẽ loại bỏ một mục tùy ý vì không có chỉ mục hoặc thứ tự trong một tập hợp Run 1: ------------ Tuple = 2.307861 seconds List = 2.362857 seconds Run 2: ------------ Tuple = 2.339859 seconds List = 2.340859 seconds Run 3: ------------ Tuple = 2.335859 seconds List = 2.330854 seconds Run 4: ------------ Tuple = 2.395857 seconds List = 2.655840 seconds Run 5: ------------ Tuple = 2.291866 seconds List = 2.309857 seconds1 9. Danh sách hoặc Set hoặc TupleCác đối tượng bộ sưu tập này có thể được chuyển đổi từ cái này sang cái khác. Các chức năng để sử dụng, như tên gợi ý, liệt kê, tuple và đặt text = "Hello World!"list_a = list(text)0 10. Thêm các mặt hàng mớiVì các bộ dữ liệu là bất biến, nên chúng ta chỉ có thể thêm các mục mới vào danh sách hoặc tập hợp. Chúng tôi có nhiều lựa chọn thay thế hơn khi thay đổi danh sách do được sắp xếp hoặc lập chỉ mục Chẳng hạn, phương thức append thêm một mục vào cuối danh sách. Vì các tập hợp không có khái niệm về kết thúc hoặc bắt đầu nên chúng ta không thể sử dụng phương thức chắp thêm. Đối với các bộ, phương thức thêm được sử dụng để thêm các mục mới text = "Hello World!"list_a = list(text)1 11. Chèn một mục vào danh sáchChức năng chèn cũng được sử dụng để thêm một phần tử vào danh sách. Tuy nhiên, nó cho phép chỉ định chỉ mục của phần tử mới. Chẳng hạn, chúng ta có thể thêm một phần tử mới vào đầu danh sách (index=0) text = "Hello World!"list_a = list(text)2 Vì nó yêu cầu một chỉ mục, chúng tôi không thể sử dụng chức năng chèn trên các tập hợp 12. Kết hợp hai đối tượngSẽ có trường hợp chúng ta cần thêm các mục cùng loại với nhau. Chúng tôi có nhiều tùy chọn để kết hợp các đối tượng của danh sách, bộ dữ liệu và bộ Toán tử “+” có thể được sử dụng để thêm danh sách hoặc bộ nhưng không phải bộ text = "Hello World!"list_a = list(text)3 Chúng ta có thể sử dụng toán tử hợp để kết hợp hai bộ. Các phần tử trùng lặp sẽ bị xóa text = "Hello World!"list_a = list(text)4 Ghi chú. Ký hiệu tập hợp tương tự như ký hiệu từ điển trong Python. Sự khác biệt là khi tạo từ điển, chúng tôi đặt các cặp khóa-giá trị bên trong dấu ngoặc nhọn thay vì các mục đơn lẻ Chúng ta cần ghi nhớ điều đó khi tạo một từ điển trống. Nếu chúng ta chỉ sử dụng dấu ngoặc nhọn mà không có gì bên trong, Python sẽ nghĩ đó là từ điển rỗng. Chúng ta có thể sử dụng hàm set để tạo một tập rỗng text = "Hello World!"list_a = list(text)5 13. Sắp xếpChúng ta chỉ có thể nói về việc sắp xếp nếu có thứ tự. Do đó, sắp xếp áp dụng cho danh sách và bộ dữ liệu. Không thể sắp xếp các bộ vì không có thứ tự Chức năng sắp xếp sửa đổi đối tượng mà nó được áp dụng. Vì vậy, chúng tôi chỉ có thể sử dụng nó trên danh sách. Tuples là bất biến vì vậy chúng tôi không thể sắp xếp chúng text = "Hello World!"list_a = list(text)6 Tuy nhiên, chúng ta có thể sử dụng chức năng sắp xếp trên bộ dữ liệu. Nó tạo ra một danh sách được sắp xếp của bất kỳ lần lặp nào. Vì vậy, chúng ta có thể sử dụng nó để tạo một danh sách được sắp xếp dựa trên một tuple text = "Hello World!"list_a = list(text)7
14. Đang cập nhật một bộPhương thức cập nhật có thể được sử dụng để cập nhật một tập hợp theo các mục trong các lần lặp khác. Do tính chất của bộ, các mục trùng lặp sẽ bị xóa khi cập nhật text = "Hello World!"list_a = list(text)8 15. Len và đếmHàm len trả về độ dài (i. e. số mục) của một bộ sưu tập. Nó hoạt động trên danh sách, bộ dữ liệu và bộ Hàm đếm có thể được sử dụng để đếm số lần xuất hiện của một phần tử cụ thể. Nó chỉ được sử dụng với danh sách và bộ dữ liệu. Vì các bộ không chứa bất kỳ mục trùng lặp nào nên số lượng là 1 cho tất cả các mục text = "Hello World!"list_a = list(text)9 Sự kết luậnChúng tôi đã đề cập đến sự khác biệt và tương đồng giữa 3 cấu trúc dữ liệu thiết yếu trong Python. Tôi đã cố gắng thiết kế các ví dụ để làm nổi bật những điểm quan trọng cần lưu ý khi tương tác với các đối tượng này Có nhiều phương thức và thao tác có thể hoạt động trên các đối tượng này. Chẳng hạn, khả năng hiểu danh sách khá hữu ích trong phân tích và thao tác dữ liệu Sự hiểu biết toàn diện về cấu trúc dữ liệu là rất quan trọng vì cấu trúc của chúng là những phần cơ bản của bất kỳ ngôn ngữ lập trình nào. Chúng cũng là những yếu tố chính trong việc thiết kế các thuật toán Bộ hoặc bộ danh sách nào nhanh hơn?Tạo bộ nhanh hơn tạo danh sách . Tạo danh sách chậm hơn vì cần truy cập hai khối bộ nhớ. Một phần tử trong bộ không thể bị xóa hoặc thay thế. Một phần tử trong danh sách có thể được loại bỏ hoặc thay thế.
Cái gì nhanh hơn set trong Python?Nói chung, danh sách nhanh hơn bộ. Nhưng trong trường hợp tìm kiếm một phần tử trong một tập hợp, các tập hợp sẽ nhanh hơn vì các tập hợp đã được triển khai bằng cách sử dụng bảng băm . |