Mảng giá trị số trong Python

Trong hướng dẫn này, bạn sẽ tìm hiểu về mô-đun mảng Python, sự khác biệt giữa mảng và danh sách, cách thức và thời điểm sử dụng chúng với sự trợ giúp của các ví dụ.

Lưu ý: Khi mọi người nói mảng trong Python, thường xuyên hơn không, họ đang nói về danh sách Python . Nếu đúng như vậy, hãy truy cập hướng dẫn danh sách Python.

Trong hướng dẫn này, chúng tôi sẽ tập trung vào một mô-đun có tên array. Các arraymô-đun cho phép chúng ta lưu trữ một tập hợp các giá trị số.

Tạo Mảng Python

Để tạo một mảng các giá trị số, chúng ta cần nhập arraymô-đun. Ví dụ:

 import array as arr a = arr.array('d', (1.1, 3.5, 4.5)) print(a)

Đầu ra

 mảng ('d', (1.1, 3.5, 4.5))

Ở đây, chúng tôi đã tạo một mảng floatkiểu. Chữ cái dlà một mã loại. Điều này xác định kiểu của mảng trong quá trình tạo.

Các mã loại thường được sử dụng được liệt kê như sau:

Loại C Loại Python Min byte
b ký char int 1
B ký tự không dấu int 1
u Py_UNICODE Unicode 2
h ký ngắn int 2
H không dấu ngắn int 2
i int đã ký int 2
I int không dấu int 2
l ký lâu int 4
L không ký lâu int 4
f Phao nổi Phao nổi 4
d gấp đôi Phao nổi số 8

Chúng tôi sẽ không thảo luận về các loại C khác nhau trong bài viết này. Chúng tôi sẽ sử dụng hai mã loại trong toàn bộ bài viết này: icho số nguyên và dcho số float.

Lưu ý : uMã loại cho các ký tự Unicode không được dùng nữa kể từ phiên bản 3.3. Tránh sử dụng càng nhiều càng tốt.

Truy cập các phần tử mảng Python

Chúng tôi sử dụng các chỉ mục để truy cập các phần tử của một mảng:

 import array as arr a = arr.array('i', (2, 4, 6, 8)) print("First element:", a(0)) print("Second element:", a(1)) print("Last element:", a(-1))

Đầu ra

 Phần tử đầu tiên: 2 Phần tử thứ hai: 4 Phần tử cuối cùng: 8

Lưu ý : Chỉ mục bắt đầu từ 0 (không phải 1) tương tự như danh sách.

Cắt các mảng Python

Chúng ta có thể truy cập một loạt các mục trong một mảng bằng cách sử dụng toán tử cắt :.

 import array as arr numbers_list = (2, 5, 62, 5, 42, 52, 48, 5) numbers_array = arr.array('i', numbers_list) print(numbers_array(2:5)) # 3rd to 5th print(numbers_array(:-5)) # beginning to 4th print(numbers_array(5:)) # 6th to end print(numbers_array(:)) # beginning to end

Đầu ra

 array ('i', (62, 5, 42)) array ('i', (2, 5, 62)) array ('i', (52, 48, 5)) array ('i', (2 , 5, 62, 5, 42, 52, 48, 5))

Thay đổi và thêm các phần tử

Mảng có thể thay đổi; các phần tử của chúng có thể được thay đổi theo cách tương tự như danh sách.

 import array as arr numbers = arr.array('i', (1, 2, 3, 5, 7, 10)) # changing first element numbers(0) = 0 print(numbers) # Output: array('i', (0, 2, 3, 5, 7, 10)) # changing 3rd to 5th element numbers(2:5) = arr.array('i', (4, 6, 8)) print(numbers) # Output: array('i', (0, 2, 4, 6, 8, 10))

Đầu ra

 array ('i', (0, 2, 3, 5, 7, 10)) array ('i', (0, 2, 4, 6, 8, 10))

Chúng ta có thể thêm một mục vào mảng bằng append()phương thức hoặc thêm một số mục bằng extend()phương thức.

 import array as arr numbers = arr.array('i', (1, 2, 3)) numbers.append(4) print(numbers) # Output: array('i', (1, 2, 3, 4)) # extend() appends iterable to the end of the array numbers.extend((5, 6, 7)) print(numbers) # Output: array('i', (1, 2, 3, 4, 5, 6, 7))

Đầu ra

 array ('i', (1, 2, 3, 4)) array ('i', (1, 2, 3, 4, 5, 6, 7))

Chúng ta cũng có thể nối hai mảng bằng +toán tử.

 import array as arr odd = arr.array('i', (1, 3, 5)) even = arr.array('i', (2, 4, 6)) numbers = arr.array('i') # creating empty array of integer numbers = odd + even print(numbers)

Đầu ra

 mảng ('i', (1, 3, 5, 2, 4, 6)) 

Loại bỏ các phần tử mảng Python

Chúng ta có thể xóa một hoặc nhiều mục khỏi một mảng bằng cách sử dụng câu lệnh del của Python.

 import array as arr number = arr.array('i', (1, 2, 3, 3, 4)) del number(2) # removing third element print(number) # Output: array('i', (1, 2, 3, 4)) del number # deleting entire array print(number) # Error: array is not defined

Đầu ra

 array ('i', (1, 2, 3, 4)) Traceback (lần gọi gần đây nhất): Tệp "", dòng 9, in (số) # Lỗi: mảng không được xác định Tên Lỗi: tên 'số' là không xác định

Chúng ta có thể sử dụng remove()phương thức để loại bỏ mục đã cho và pop()phương thức để loại bỏ một mục tại chỉ mục đã cho.

 import array as arr numbers = arr.array('i', (10, 11, 12, 12, 13)) numbers.remove(12) print(numbers) # Output: array('i', (10, 11, 12, 13)) print(numbers.pop(2)) # Output: 12 print(numbers) # Output: array('i', (10, 11, 13))

Đầu ra

 array ('i', (10, 11, 12, 13)) 12 array ('i', (10, 11, 13))

Kiểm tra trang này để tìm hiểu thêm về mảng và phương thức mảng trong Python.

Python Lists Vs Arrays

Trong Python, chúng ta có thể coi danh sách là mảng. Tuy nhiên, chúng ta không thể giới hạn loại phần tử được lưu trữ trong danh sách. Ví dụ:

 # elements of different types a = (1, 3.5, "Hello") 

Nếu bạn tạo mảng bằng arraymô-đun, tất cả các phần tử của mảng phải có cùng kiểu số.

 import array as arr # Error a = arr.array('d', (1, 3.5, "Hello"))

Đầu ra

 Traceback (most recent call last): File "", line 3, in a = arr.array('d', (1, 3.5, "Hello")) TypeError: must be real number, not str

When to use arrays?

Lists are much more flexible than arrays. They can store elements of different data types including strings. And, if you need to do mathematical computation on arrays and matrices, you are much better off using something like NumPy.

So, what are the uses of arrays created from the Python array module?

The array.array type is just a thin wrapper on C arrays which provides space-efficient storage of basic C-style data types. If you need to allocate an array that you know will not change, then arrays can be faster and use less memory than lists.

Trừ khi bạn không thực sự cần mảng (có thể cần mô-đun mảng để giao tiếp với mã C), việc sử dụng mô-đun mảng không được khuyến khích.

thú vị bài viết...