Hướng dẫn why does python use lists instead of arrays? - tại sao python sử dụng danh sách thay vì mảng?
Về cơ bản, các danh sách Python rất linh hoạt và có thể chứa các dữ liệu hoàn toàn không đồng nhất, tùy ý và chúng có thể được thêm vào rất hiệu quả, trong thời gian khấu hao. Nếu bạn cần thu nhỏ và phát triển danh sách của bạn hiệu quả về thời gian và không gặp rắc rối, chúng là con đường để đi. Nhưng chúng sử dụng nhiều không gian hơn các mảng C, một phần vì mỗi mục trong danh sách yêu cầu xây dựng một đối tượng Python riêng lẻ, ngay cả đối với dữ liệu có thể được biểu diễn bằng các loại C đơn giản (ví dụ: [3, 6, 9, 12]2 hoặc [3, 6, 9, 12]3).a lot more space than C arrays, in part because each item in the list requires the construction of an individual Python object, even for data that could be represented with simple C types (e.g. [3, 6, 9, 12]2 or [3, 6, 9, 12]3). Show
Loại [3, 6, 9, 12]4, mặt khác, chỉ là một trình bao bọc mỏng trên các mảng C. Nó chỉ có thể chứa dữ liệu đồng nhất (có nghĩa là tất cả cùng loại) và do đó, nó chỉ sử dụng [3, 6, 9, 12]5 byte bộ nhớ. Hầu hết, bạn nên sử dụng nó khi bạn cần phơi một mảng C thành một phần mở rộng hoặc cuộc gọi hệ thống (ví dụ: [3, 6, 9, 12]6 hoặc [3, 6, 9, 12]7). [3, 6, 9, 12]4 cũng là một cách hợp lý để thể hiện một chuỗi có thể thay đổi trong Python 2.x ( [3, 6, 9, 12]9). Tuy nhiên, Python 2.6+ và 3.x cung cấp một chuỗi byte có thể thay đổi là import array as arr0.mutable string in Python 2.x ( [3, 6, 9, 12]9). However, Python 2.6+ and 3.x offer a mutable byte string as import array as arr0. Tuy nhiên, nếu bạn muốn làm toán trên một mảng dữ liệu số đồng nhất, thì tốt hơn hết là bạn nên sử dụng Numpy, điều này có thể tự động vector hóa các hoạt động trên các mảng đa chiều phức tạp.math on a homogeneous array of numeric data, then you're much better off using NumPy, which can automatically vectorize operations on complex multi-dimensional arrays. Để làm cho một câu chuyện dài ngắn: [3, 6, 9, 12]4 is useful when you need a homogeneous C array of data for reasons other than doing math. Cả hai danh sách và mảng đều được sử dụng để lưu trữ dữ liệu trong Python. Hơn nữa, cả hai cấu trúc dữ liệu cho phép lập chỉ mục, cắt và lặp lại. Vậy sự khác biệt giữa một mảng và một danh sách trong Python là gì? Trong bài viết này, chúng tôi sẽ giải thích chi tiết khi nào nên sử dụng mảng Python so với danh sách. Python có rất nhiều cấu trúc dữ liệu khác nhau với các tính năng và chức năng khác nhau. Các cấu trúc dữ liệu tích hợp của nó bao gồm danh sách, bộ dữ liệu, bộ và từ điển. Tuy nhiên, đây không phải là một danh sách đầy đủ các cấu trúc dữ liệu có sẵn trong Python. Một số cấu trúc dữ liệu bổ sung có thể được nhập từ các mô -đun hoặc gói khác nhau.lists, tuples, sets, and dictionaries. However, this is not an exhaustive list of the data structures available in Python. Some additional data structures can be imported from different modules or packages. Một cấu trúc dữ liệu mảng thuộc danh mục "phải nhập". Để sử dụng một mảng trong Python, bạn sẽ cần nhập cấu trúc dữ liệu này từ NumpyPackage hoặc ArrayModule.NumPy package or the array module. Và đó là sự khác biệt đầu tiên giữa danh sách và mảng. Trước khi đi sâu hơn vào sự khác biệt giữa hai cấu trúc dữ liệu này, hãy xem xét các tính năng và chức năng của danh sách và mảng. Danh sách trong Python là gì?Danh sách là một cấu trúc dữ liệu được tích hợp vào Python và chứa một bộ sưu tập các mục. Danh sách có một số đặc điểm quan trọng:list is a data structure that's built into Python and holds a collection of items. Lists have a number of important characteristics:
Danh sách rất dễ dàng được tạo ra trong Python: list = [3, 6, 9, 12] print(list) print(type(list)) [3, 6, 9, 12] Danh sách Python được sử dụng ở khắp mọi nơi, vì chúng là một công cụ tuyệt vời để lưu một chuỗi các mục và lặp lại nó. Một mảng trong Python là gì?Một mảng cũng là một cấu trúc dữ liệu lưu trữ một tập hợp các mục. Giống như danh sách, các mảng được đặt hàng, có thể thay đổi, được đặt trong ngoặc vuông và có thể lưu trữ các vật phẩm không đơn độc.array is also a data structure that stores a collection of items. Like lists, arrays are ordered, mutable, enclosed in square brackets, and able to store non-unique items. Nhưng khi nói đến khả năng lưu trữ các loại dữ liệu khác nhau của mảng, câu trả lời không đơn giản. Nó phụ thuộc vào loại mảng được sử dụng. Để sử dụng các mảng trong Python, bạn cần nhập mô -đun mảng hoặc gói numpy.array module or a NumPy package. import array as arr import numpy as np Mô -đun mảng Python yêu cầu tất cả các phần tử mảng phải cùng loại. Ngoài ra, để tạo một mảng, bạn sẽ cần chỉ định loại giá trị. Trong mã bên dưới, "I" biểu thị rằng tất cả các phần tử trong Array_1 đều là số nguyên:array module requires all array elements to be of the same type. Moreover, to create an array, you'll need to specify a value type. In the code below, the "i" signifies that all elements in array_1 are integers: array_1 = arr.array("i", [3, 6, 9, 12]) print(array_1) print(type(array_1)) array('i', [3, 6, 9, 12]) Mặt khác, các mảng Numpy hỗ trợ các loại dữ liệu khác nhau. Để tạo một mảng numpy, bạn chỉ cần chỉ định các mục (tất nhiên là được đặt trong ngoặc vuông):NumPy arrays support different data types. To create a NumPy array, you only need to specify the items (enclosed in square brackets, of course): array_2 = np.array(["numbers", 3, 6, 9, 12]) print (array_2) print(type(array_2)) ['numbers' '3' '6' '9' '12'] Như bạn có thể thấy, Array_2 chứa một mục của loại chuỗi (tức là, "số") và bốn số nguyên. Vậy sự khác biệt là gì?Bây giờ chúng ta đã biết các định nghĩa và tính năng của họ, chúng ta có thể nói về sự khác biệt giữa các danh sách và mảng trong Python:
array = np.array([3, 6, 9, 12]) division = array/3 print(division) print (type(division)) [1. 2. 3. 4.]____10 [3, 6, 9, 12]1 Tất nhiên, có thể thực hiện một hoạt động toán học với một danh sách, nhưng nó kém hiệu quả hơn nhiều: Từ các cấu trúc dữ liệu Python trong khóa học thực tế Vì vậy, khi nào bạn nên sử dụng một danh sách và khi nào bạn nên sử dụng một mảng?
Thời gian để thực hành mảng Python và danh sách!Tuyệt quá! Bây giờ bạn đã biết sự khác biệt giữa một mảng và một danh sách trong Python. Bạn cũng biết lựa chọn nào cho một chuỗi các mặt hàng. Bây giờ là lúc để thực hành! Nếu bạn muốn thúc đẩy sự hiểu biết của mình về cấu trúc dữ liệu và thực hành hơn 100 bài tập tương tác, hãy xem các cấu trúc dữ liệu Python của LearnPython.com trong thực tế. Nó sẽ giúp bạn cảm thấy như một chuyên gia khi xử lý danh sách, danh sách lồng nhau, bộ dữ liệu, bộ và từ điển. Danh sách có tốt hơn mảng trong Python không?Một mảng nhanh hơn một danh sách trong Python vì tất cả các yếu tố được lưu trữ trong một mảng là đồng nhất, tức là, chúng có cùng loại dữ liệu trong khi một danh sách chứa các yếu tố không đồng nhất. Hơn nữa, các mảng Python được triển khai trong C, giúp nó nhanh hơn rất nhiều so với các danh sách được tích hợp trong chính Python. since all the elements stored in an array are homogeneous i.e., they have the same data type whereas a list contains heterogeneous elements. Moreover, Python arrays are implemented in C which makes it a lot faster than lists that are built-in in Python itself.
Tại sao các mảng Python được gọi là danh sách?Các mảng thường chứa các yếu tố của cùng một kiểu dữ liệu.Nhưng, các danh sách, mặt khác, có thể chứa các yếu tố của tất cả các kiểu dữ liệu.Chúng được đặt tên theo danh sách loại dữ liệu trừu tượng, không phải danh sách được liên kết.They're named after the list abstract data type, not linked lists.
Có phải danh sách Python chỉ là mảng?Trong Cpython, danh sách là các mảng của con trỏ.Các triển khai khác của Python có thể chọn lưu trữ chúng theo những cách khác nhau.lists are arrays of pointers. Other implementations of Python may choose to store them in different ways.
Danh sách hoặc mảng nào nhanh hơn trong Python?Các mảng Numpy nhanh hơn danh sách Python vì những lý do sau: Một mảng là một tập hợp các loại dữ liệu đồng nhất được lưu trữ trong các vị trí bộ nhớ liên tục.Mặt khác, một danh sách trong Python là một tập hợp các loại dữ liệu không đồng nhất được lưu trữ trong các vị trí bộ nhớ không liên tục. because of the following reasons: An array is a collection of homogeneous data-types that are stored in contiguous memory locations. On the other hand, a list in Python is a collection of heterogeneous data types stored in non-contiguous memory locations. |