Danh sách so với mảng Python

Mọi người ơi. Hy vọng tất cả các bạn đang làm tốt. Trong bài viết này, chúng tôi sẽ tập trung vào sự khác biệt giữa Danh sách Python và Mảng một cách chi tiết


Sự khác biệt chính giữa danh sách Python và mảng Python là danh sách là một phần của gói tiêu chuẩn Python trong khi đối với mảng, mô-đun “mảng” cần được nhập. Danh sách trong Python thay thế cấu trúc dữ liệu mảng bằng một vài trường hợp ngoại lệ

1. Cách Danh sách và Mảng Lưu trữ Dữ liệu

Như chúng ta đã biết, Cấu trúc dữ liệu được sử dụng để lưu trữ dữ liệu một cách hiệu quả

Trong trường hợp này, một danh sách có thể lưu trữ các giá trị dữ liệu không đồng nhất vào đó. Nghĩa là, các mục dữ liệu thuộc các loại dữ liệu khác nhau có thể được cung cấp trong Danh sách Python

Thí dụ

lst = [1,2,3,4,'Python']
print(lst)

đầu ra

[1,2,3,4,'Python']

Mặt khác, Mảng lưu trữ các phần tử thuần nhất vào nó. e. chúng lưu trữ các phần tử thuộc cùng loại

Thí dụ

import array

arr = array.array('i', [10, 20, 30, 40])
print(arr)

đầu ra

array('i', [10, 20, 30, 40])


2. Khai báo Array vs. Danh sách

Python đã có “Danh sách” dưới dạng cấu trúc dữ liệu tích hợp. Đó là lý do, Danh sách không cần khai báo trong Python

lst = [1, 2, 3, 4]

Mặt khác, Mảng trong Python cần được khai báo. Chúng ta có thể khai báo một mảng bằng các kỹ thuật dưới đây

Mô-đun mảng

import array
array-name = array.array('format-code', [elements])

Mô-đun NumPy

import numpy
array-name = numpy.array([elements])


3. Các phép toán cao cấp với mảng

Mảng cung cấp ưu thế khi thực hiện các phép toán. Module NumPy cung cấp cho chúng ta cấu trúc mảng để lưu trữ các giá trị dữ liệu và thao tác với chúng một cách dễ dàng

Ví dụ với Mảng

import numpy
arr = numpy.array([1,2,3,4])
pr = arr*5
print(pr)

đầu ra

________số 8

Không giống như danh sách, trong đó các thao tác được thực hiện trên danh sách không phản ánh vào kết quả như trong ví dụ dưới đây với các thao tác trên danh sách

Ở đây, chúng tôi đã cố gắng nhân giá trị không đổi (5) với danh sách, danh sách này không phản ánh bất kỳ điều gì trong đầu ra. Bởi vì Danh sách không mở để thao tác toán học trực tiếp với bất kỳ giá trị dữ liệu nào

Vì vậy, nếu chúng ta muốn nhân 5 với các phần tử của danh sách, chúng ta sẽ phải nhân riêng 5 với từng phần tử của danh sách

Ví dụ với Danh sách

lst = [1,2,3,4]
pr = lst*5
print(lst)

đầu ra

[1,2,3,4,'Python']
0


4. Thay đổi kích thước cấu trúc dữ liệu

Danh sách Python là một cấu trúc dữ liệu sẵn có có thể thay đổi kích thước rất dễ dàng và hiệu quả

Mặt khác, Mảng tỏ ra có hiệu suất rất kém về mặt thay đổi kích thước bộ nhớ của mảng. Thay vào đó, chúng ta sẽ phải sao chép mảng này sang một mảng khác để chia tỷ lệ và thay đổi kích thước của nó


Sự kết luận

Đến đây, chúng ta đã đi đến cuối chủ đề này. Vui lòng bình luận bên dưới, trong trường hợp bạn gặp bất kỳ câu hỏi nào

Liên quan đến hiệu suất, đây là một số con số so sánh danh sách python, mảng và mảng numpy (tất cả đều có Python 3. 7 trên Macbook Pro 2017). Kết quả cuối cùng là danh sách python nhanh nhất cho các thao tác này

[1,2,3,4,'Python']
1

Trong python, cả mảng và danh sách đều được sử dụng để lưu trữ dữ liệu dưới dạng cấu trúc dữ liệu. Cấu trúc dữ liệu này có thể được sử dụng để lặp lại và lập chỉ mục. Trong bài viết này, chúng ta sẽ nghiên cứu mảng là gì và danh sách thực sự là gì và sự khác biệt chính giữa mảng và danh sách trong python với một bảng hoàn chỉnh cho Array vs List. Ngoài ra, chúng ta sẽ học khi nào nên sử dụng mảng và đặc biệt là liệt kê.  

Mảng là gì?

Mảng là một cấu trúc dữ liệu chứa số phần tử cố định và các phần tử này phải có cùng kiểu dữ liệu. Hầu hết cấu trúc dữ liệu sử dụng một mảng để thực hiện thuật toán của họ. Có hai phần quan trọng của mảng. một là một Element. Mỗi mục lưu trữ trong mảng được gọi là một phần tử và thứ hai là một Chỉ mục. Mỗi phần tử trong mảng có giá trị số riêng để xác định phần tử. Các phần tử này phân bổ các vị trí bộ nhớ liền kề cho phép dễ dàng sửa đổi dữ liệu. Để khai báo mảng trong ngôn ngữ python, chúng ta sẽ sử dụng module array.  

Ví dụ

[1,2,3,4,'Python']
2

đầu ra

 a
 b
 c

Nếu phần tử dữ liệu của khai báo mảng thuộc kiểu dữ liệu khác, thì một ngoại lệ “Kiểu dữ liệu không tương thích” sẽ được đưa ra

Danh sách là gì?

Danh sách là kiểu dữ liệu quan trọng nhất trong ngôn ngữ python. Trong ngôn ngữ Python, danh sách được viết dưới dạng danh sách các giá trị được phân tách bằng dấu phẩy bên trong dấu ngoặc vuông. Ưu điểm quan trọng nhất của danh sách là các phần tử bên trong danh sách không bắt buộc phải có cùng kiểu dữ liệu cùng với việc lập chỉ mục phủ định. Ngoài ra, mọi thao tác của chuỗi cũng được áp dụng tương tự trên kiểu dữ liệu danh sách như cắt, nối, v.v. Ngoài ra, chúng ta có thể tạo danh sách lồng nhau i. danh sách e chứa danh sách khác

Ví dụ

[1,2,3,4,'Python']
3

đầu ra

[10, 'sid', ['A', 'B']]

Sự khác biệt giữa Mảng và Danh sách trong Python

Dưới đây chúng tôi đã đề cập đến 5 điểm khác biệt chính giữa mảng và danh sách trong lập trình python

  1. khả năng thay thế. Danh sách Python chỉ có thể thay thế cho cấu trúc dữ liệu mảng với một số trường hợp ngoại lệ
  2. Loại dữ liệu Lưu trữ. Mảng chỉ có thể lưu trữ các phần tử của một loại dữ liệu nhưng Danh sách cũng có thể lưu trữ các phần tử của các loại dữ liệu khác nhau. Do đó, Mảng lưu trữ các giá trị dữ liệu đồng nhất và danh sách có thể lưu trữ các giá trị dữ liệu không đồng nhất
  3. Nhập mô-đun. Danh sách là cấu trúc dữ liệu trong bản dựng của ngôn ngữ python do đó không có mô-đun hoặc gói nào được nhập trước khi sử dụng nó. Nhưng mảng không phải là cấu trúc dữ liệu có sẵn cho ngôn ngữ python. Do đó, chúng ta cần nhập mô-đun “mảng” trước khi tạo và sử dụng mảng
  4. Hoạt động số. Mảng mang lại lợi thế trong việc thực hiện các phép toán trong ngôn ngữ python vì mô-đun NumPy cung cấp cho chúng ta cấu trúc mảng để lưu trữ các giá trị dữ liệu và thao tác với chúng một cách dễ dàng. Nhưng danh sách mặt khác không phản ánh kết quả. Danh sách có khả năng thực hiện các phép toán nhưng chúng kém hiệu quả hơn so với mảng
  5. Khả năng sửa đổi. Mảng có hiệu suất rất kém trong việc thay đổi kích thước và sửa đổi vị trí bộ nhớ nhưng mặt khác, danh sách là cấu trúc dữ liệu được xây dựng và do đó có thể thay đổi kích thước và sửa đổi rất dễ dàng và hiệu quả

con trăn. Mảng vs Danh sách

Danh sách

Mảng

Chứa các phần tử thuộc các kiểu dữ liệu khác nhau

Chứa các phần tử có cùng kiểu dữ liệu

Mô-đun nhập rõ ràng không bắt buộc phải khai báo danh sách

Cần nhập mô-đun một cách rõ ràng để khai báo một mảng

Không thể xử lý các phép tính số học

Có thể xử lý các phép tính số học

Có thể được lồng trong một danh sách khác

Phải chứa tất cả các phần tử có cùng kích thước

Chủ yếu được sử dụng trong chuỗi phần tử dữ liệu ngắn hơn

Chủ yếu được sử dụng trong chuỗi phần tử dữ liệu dài hơn

Dễ dàng sửa đổi như thêm, xóa và cập nhật các phần tử dữ liệu được thực hiện

Rất khó để sửa đổi một mảng vì thao tác thêm, xóa và cập nhật được thực hiện trên một phần tử tại một thời điểm

Chúng tôi có thể in toàn bộ danh sách mà không cần sự trợ giúp của một vòng lặp rõ ràng

Để in hoặc truy cập các phần tử mảng, chúng tôi sẽ yêu cầu một vòng lặp rõ ràng

Để dễ dàng thêm phần tử, cần có bộ nhớ lưu trữ lớn

So với danh sách, nó có kích thước trong bộ nhớ nhỏ gọn hơn

Khi nào nên sử dụng Mảng hoặc Danh sách?

Như chúng ta đã nghiên cứu ở trên, mảng và danh sách có tầm quan trọng riêng trong ngôn ngữ python. Nhưng câu hỏi luôn được đặt ra, khi nào thì sử dụng mảng hoặc danh sách?

Vì vậy, khi chúng tôi đang nhắm mục tiêu lưu trữ chuỗi phần tử nhỏ và không muốn thực hiện bất kỳ phép toán nào, thì danh sách là lựa chọn ưu tiên để thực hiện vì cấu trúc dữ liệu danh sách sẽ cho phép bạn lưu trữ một thứ tự và có thể thay đổi (có thể dễ dàng sửa đổi

Vì cấu trúc dữ liệu mảng cung cấp khả năng lưu trữ dữ liệu hiệu quả hơn cho các phần tử, do đó, nó được coi là sử dụng mảng khi chúng ta cần xử lý một chuỗi dữ liệu dài

Ngoài ra, nếu chúng ta mong muốn thực hiện các phép toán số trên tổ hợp các phần tử, thì nên sử dụng mảng làm cấu trúc dữ liệu mảng phụ thuộc nhiều vào phân tích dữ liệu và khoa học dữ liệu

Ngoài ra, danh sách python nhanh hơn mảng python vì mảng python dựa trên chính danh sách python vì khi chúng ta tạo danh sách python, một mảng con trỏ lưu trữ tham chiếu của các phần tử trong danh sách được tạo ở đâu đó trong vị trí bộ nhớ.  

Sự kết luận

Như vậy, từ những nghiên cứu trên, chúng ta biết rằng cả mảng và danh sách đều có những ưu điểm và nhược điểm riêng. Bạn cũng đã hiểu sự khác biệt giữa mảng và danh sách trong python, cùng với bảng phân biệt giữa mảng và danh sách. Chúng ta có thể sử dụng chúng theo yêu cầu của dữ liệu được lưu trữ và các thao tác sẽ được thực hiện trên các phần tử được lưu trữ

Sự khác biệt giữa mảng Python và danh sách là gì?

Danh sách được sử dụng để thu thập các mục thường bao gồm các phần tử của nhiều loại dữ liệu. Mảng cũng là một thành phần quan trọng tập hợp một số phần tử có cùng kiểu dữ liệu. Danh sách không thể quản lý các hoạt động số học. Mảng có thể quản lý các phép toán số học

Là một danh sách tốt hơn một mảng?

Danh sách phù hợp hơn cho việc chèn và xóa thường xuyên, trong khi Mảng phù hợp hơn nhiều cho trường hợp truy cập thường xuyên các phần tử . Danh sách chiếm nhiều bộ nhớ hơn vì mọi nút được xác định Danh sách có bộ nhớ riêng trong khi Mảng là cấu trúc dữ liệu hiệu quả về bộ nhớ.

Tại sao sử dụng một danh sách thay vì một mảng?

Danh sách có thể dễ dàng tăng kích thước và bạn có thể thêm và xóa các phần tử ở giữa danh sách một cách dễ dàng . Điều đó không thể được thực hiện với các mảng. Bạn cần xem xét những gì bạn cần danh sách mặc dù. Nếu bạn không nghĩ rằng danh sách sẽ thay đổi nhiều, thì hãy sử dụng một mảng để thay thế.