Mảng trong Python là gì? Hướng dẫn sử dụng chi tiết nhất


Khi bắt đầu học lập trình, việc tạo mảng trong Python là một kỹ năng cơ bản nhưng rất quan trọng mà bất kỳ ai cũng cần nắm vững. Mặc dù Python không hỗ trợ theo kiểu truyền thống như C/C++, bạn vẫn có thể sử dụng nó thông qua các mô-đun có sẵn. Vậy array trong Python kiểu mảng là gì? Sforum sẽ cung cấp thông tin chi tiết về chủ đề này trong bài viết dưới đây.
Mảng trong Python là gì?
Trong Python kiểu mảng là một cấu trúc dữ liệu dạng dãy, được tạo ra để lưu trữ một nhóm các phần tử có cùng kiểu dữ liệu và được truy cập thông qua một tên biến duy nhất. Khác với danh sách (list) vốn cho phép chứa dữ liệu có kiểu khác nhau, mảng giúp đảm bảo sự đồng nhất về kiểu, tối ưu hóa bộ nhớ và tăng hiệu suất xử lý.

Trong Python, bạn cần sử dụng mô-đun array từ thư viện chuẩn để khai báo và thao tác với mảng. Đây là lựa chọn lý tưởng khi bạn xử lý các tập dữ liệu số lượng lớn và muốn giảm chi phí bộ nhớ. Ví dụ khởi tạo mảng trong Python:
a = arr.array('f', [1.2,1.3,2.3])
Để học tốt Python và xử lý các thao tác như tạo mảng trong Python, một chiếc laptop mạnh mẽ là điều không thể thiếu. Dù bạn là người mới học hay đã có kinh nghiệm, việc sở hữu thiết bị phù hợp sẽ giúp code nhanh, mượt và hiệu quả hơn. Hãy tham khảo ngay các mẫu laptop học lập trình tại CellphoneS với giá ưu đãi và nhiều lựa chọn theo nhu cầu.
[Product_Listing categoryid="380" propertyid="" customlink="https://cellphones.com.vn/laptop.html" title="Danh sách Laptop đang được quan tâm nhiều tại CellphoneS"]
Cú pháp và các kiểu dữ liệu mảng trong Python
Sau khi hiểu được trong Python kiểu mảng là gì, chắc hẳn bạn sẽ tò mò về các cú pháp tạo mảng cũng như các dữ liệu của nó. Tùy theo mục đích sử dụng, bạn có thể lựa chọn cách tạo mảng trong Python phù hợp với yêu cầu về hiệu suất và xử lý. Sau đây là một số phương pháp khai báo và thao tác thường gặp.
Khai báo mảng với thư viện array
Để tạo mảng trong Python, bạn cần khai báo đúng cú pháp với mô-đun array. Cú pháp array trong Python khởi tạo mảng như sau:
a = array.array(typecode, [elements])

Trong đó:
- typecode: là mã đại diện cho kiểu của dữ liệu tạo mảng.
- [elements]: là danh sách các giá trị bạn muốn đưa vào để tạo mảng.
Ví dụ tạo mảng trong Python:
a = array.array('f', [1.2, 2.5, 3.8])
print(a)
Các kiểu dữ liệu trong mảng
Python là một ngôn ngữ lập trình đa năng, cung cấp một loạt các mã dữ liệu phong phú, tạo điều kiện thuận lợi cho việc xây dựng các ứng dụng hiệu quả. Trong số đó, một số kiểu phổ biến trong việc tạo mảng là:
Typecode | Kiểu dữ liệu | Chi tiết | Ví dụ |
‘b’ | signed char (1 byte) | Số nguyên nhỏ (Từ -128 đến 127) | array(‘b’, [1, -2]) |
‘B’ | unsigned char (1 byte) | Số nguyên dương (0 đến 255) | array(‘B’, [1, 2]) |
‘i’ | signed int (2/4 byte) | Số nguyên (Tùy thuộc vào hệ thống) | array(‘i’ , [10, -5]) |
‘I’ | unsigned int (2/4 byte) | Số nguyên dương lớn | array(‘I’ , [10, 20]) |
‘l' | signed long (4 byte) | Số nguyên dài | array(‘l’ , [1000]) |
‘L’ | unsigned long (4 byte) | Số nguyên dài không âm | array(‘L’ , [1000]) |
‘f’ | float (4 byte) | Số thực (Độ chính xác đơn) | array(‘f’ , [1.5, 3.14]) |
‘d’ | double (8 byte) | Số thực (Độ chính xác nhân đôi) | array(‘d’ , [1.5, 3.14]) |
Bên cạnh việc biết các kiểu dữ liệu trong Python, bạn cũng nên biết một số lưu ý để việc tạo mảng trở nên chính xác và nhanh chóng:
- Array trong Python không hỗ trợ các kiểu phức tạp như: Chuỗi (str), danh sách (list), từ điển (dict) hay số phức (complex).
- Nếu khi tạo mảng trong Python, bạn cần lưu loại thông tin đa dạng thì nên dùng list hoặc numpy (numpy.array) để lưu trữ.
Các thao tác cơ bản với mảng trong Python
Khi tạo mảng trong Python, bạn sẽ thường xuyên sử dụng các thao tác cơ bản như thêm phần tử, truy cập chúng theo chỉ số, xóa, đảo ngược, cắt lát mảng, nối mảng… Những thao tác này giúp bạn xử lý thông tin hiệu quả hơn và làm chủ cấu trúc mảng một cách linh hoạt.
Thêm phần tử vào mảng
Bạn có thể thêm các giá trị khi tạo mảng trong Python bằng cách dùng hàm append (). Phương thức này rất hữu ích khi bạn cần cập nhật dữ liệu theo thời gian thực hoặc muốn xây dựng một mảng tăng dần theo điều kiện cụ thể. Nó đảm bảo giá trị mới được thêm đúng vị trí mà không làm thay đổi cấu trúc mảng hiện tại.

Ví dụ:
import array
a = array.array('i', [1, 2, 3])
a.append(4)
print(a)
Kết quả: array('i', [1, 2, 3, 4])
Truy xuất phần tử trong mảng
Để tiếp cận một thành phần cụ thể trong danh sách (list), bạn sử dụng toán tử chỉ mục [ ]. Lưu ý rằng các mảng trong Python bắt đầu từ 0, vì vậy, trong một danh sách gồm 5 đối tượng, các chỉ mục hợp lệ sẽ trải dài từ 0 đến 4.
Ví dụ:
import array
numbers = arr.array('i', [1, 2, 3, 4, 5])
#Truy cập phần tử đầu tiên
print(numbers[0])
Kết quả: 1
#Truy cập phần tử thứ ba
print(numbers[2])
Kết quả: 3
Cắt mảng
Trong trường hợp bạn cần trích xuất một chuỗi các giá trị liên tiếp từ một mảng, kỹ thuật cắt với cú pháp [start:end] sẽ rất hữu ích. Bạn có thể thực hiện thao tác này bằng cách chèn dấu hai chấm ':' vào giữa dấu ngoặc vuông [ ], để chỉ định đoạn dữ liệu muốn lấy ra từ mảng.
Ví dụ:
import array
a = array.array('i', [2, 3, 4, 5, 6])
print(a[2:4])
Kết quả: array('i', [4, 5])
Xóa phần tử khỏi mảng
Để loại bỏ một thành phần khỏi mảng, bạn nên sử dụng phương thức remove(). Điểm đặc biệt của phương thức này là nó nhận trực tiếp giá trị của thành phần cần xóa làm đối số. Nếu bạn vô tình truyền vào một chỉ mục (index) thay vì giá trị, Python sẽ báo lỗi.
Ví dụ:
import array
a=arr.array('i',[1.1, 2.1, 3.1])
a.remove(1.1)
print(a)
Kết quả: array(‘i’, [2.1, 3.1])
Đảo ngược mảng
Trong Python, bạn có thể đảo ngược thứ tự các mục trong một mảng theo nhiều cách. Phương pháp thường được sử dụng reverse(). Điểm quan trọng là khi bạn áp dụng reverse(), mảng array trong Python ban đầu sẽ bị sửa đổi trực tiếp, các mục sẽ được sắp xếp lại theo thứ tự ngược lại.
Ví dụ:
import array
arr = [1, 2, 3, 4, 5]
arr.reverse()
print(arr)
Kết quả: [5, 4, 3, 2, 1]
Lặp lại mảng
Sau khi bạn tạo mảng trong Python, nếu bạn muốn lặp lại các thành phần trong mảng thì cũng có cách để thực hiện. Bạn nên sử dụng numpy.repeat() để lặp lại chúng. Việc hiểu rõ về trong Python kiểu mảng là gì sẽ giúp bạn dễ dàng thực hiện các thao tác này.
Ví dụ:
import numpy as np
a = np . array ([ 4, 5, 6 ])
repeat_array = np . repeat ( a , 3 )
print ( repeat_array )
Kết quả: [4, 4, 4, 5, 5, 5, 6, 6, 6]
Duyệt mảng
Tương tự nhiều ngôn ngữ lập trình khác, vòng lặp for thường được ưu tiên để lặp qua các phần tử của một mảng trong Python. Dưới đây là ví dụ minh họa về sử dụng vòng lặp for để bạn hiểu rõ hơn về nó.
arr = [15, 25, 35, 45]
for val in arr:
print('value', val)
Kết quả: 15, 25, 35, 45
Bên cạnh đó, hàm range() cung cấp một cách linh hoạt hơn để điều khiển quá trình lặp trong vòng lặp for. Ví dụ như sau:
arr = [15, 25, 35, 45, 55, 65]
for key in range(0, len(arr), 2):
print('num', key)
Nối mảng
Sau khi tạo mảng trong Python, bạn hoàn toàn có thể kết hợp nhiều mảng lại với nhau thông qua phép nối. Để có thể ghép nối hai mảng bất kỳ lại với nhau bạn có thể dùng '+' để thực hiện. Cách này đặc biệt hữu ích khi bạn muốn mở rộng mảng mà không làm thay đổi mảng ban đầu.
Ví dụ:
import array as arr
a=arr.array('d',[1.1 , 2.1 ,3.1, 2.9, 7.4])
b=arr.array('d',[3.5, 8.1])
c=arr.array('d')
c=a+b
print("Array c = ",c)
Kết quả: c= array(‘d’, [1.1, 2.1, 3.1, 2.9, 7.4, 3.5, 8.1])
Sắp xếp mảng
Khi làm việc với các mảng chứa các đối tượng có cùng kiểu, chẳng hạn như toàn số hoặc toàn chuỗi, việc sắp xếp chúng trở nên rất cần thiết trong nhiều tình huống. Một phương pháp tiếp cận đơn giản nhất mà Python cung cấp để thực hiện việc này chính là sử dụng hàm sorted(). Hàm này sẽ trả về một danh sách mới đã được sắp xếp, trong khi mảng ban đầu vẫn được giữ nguyên.
Ví dụ:
score = [1, 5, 19, 21, 35, 77, 93, 100]
#Sắp xếp theo thứ tự tăng dần
a = sorted(score)
print(a)
#Sắp xếp theo thứ tự giảm dần
b = sorted(score, reverse=True)
print(b)
Kết quả: [1, 5, 19, 21, 35, 77, 93, 100] và [100, 93, 77, 35, 21, 19, 5, 1]
Tính tổng phần tử trong mảng
Sau khi hiểu được trong Python kiểu mảng là gì, chắc hẳn cũng có bạn mong muốn biết cách để tính tổng phần tử trong mảng. Thông thường, phương pháp trực quan và nhanh chóng là tận dụng hàm sum() có sẵn. Ví dụ minh họa:
#Hàm sum()
score = [1, 2, 5, 8, 10]
Kết quả: 26
Ngoài ra, bạn cũng có thể sử dụng cấu trúc lặp for để lần lượt truy cập từng giá trị và thực hiện phép cộng lũy tiến. Dưới đây là ví dụ minh họa cụ thể khi sử dụng hàm lặp for để tính tổng các phần tử trong mảng.
score = [1, 21, 100, 6, 7.4, 8, 9]
sum = 0
for i in score
sum += i
print(sum)
Kết quả: 152.4
Một số phương thức mảng trong Python
Python hỗ trợ nhiều phương thức mạnh mẽ để thao tác với mảng. Hiểu rõ những phương thức này sẽ giúp bạn làm việc nhanh hơn và nâng cao hiệu quả khi lập trình. Dưới đây là các bộ dữ liệu array trong Python phổ biến:

Phương thức | Ý nghĩa |
append(x) | Thêm phần tử x vào cuối mảng. |
insert(i, x) | Chèn phần tử x vào vị trí i. |
remove(x) | Xóa phần tử đầu tiên có giá trị x. |
pop([i]) | Xóa và trả về phần tử tại vị trí i |
index(x) | Trả về chỉ số của phần tử đầu tiên có giá trị x. |
reverse() | Đảo ngược các phần tử trong mảng. |
buffer_info() | Trả về tuple gồm địa chỉ bộ nhớ và số phần tử. |
count(x) | Đếm số lần xuất hiện của x trong mảng. |
extend(iterable) | Mở rộng một mảng bằng cách thêm tất cả các phần tử từ một đối tượng lặp khác vào. |
Khi nào nên sử dụng mảng thay vì danh sách?
Trong khi danh sách (list) là cấu trúc dữ liệu phổ biến và linh hoạt hơn trong Python, thì mảng lại có lợi thế rõ ràng trong một số trường hợp cụ thể. Nếu bạn đang làm việc với lượng lớn nội dung cùng kiểu (đặc biệt là số), mảng sẽ tiết kiệm bộ nhớ hơn và xử lý nhanh hơn so với list. Hãy sử dụng mảng khi:

- Bạn cần tối ưu hiệu suất với dữ liệu đồng nhất.
- Khi khối lượng dữ liệu số học của bạn lớn.
- Việc quản lý bộ nhớ hiệu quả là trọng tâm chính.
- Khi hiệu suất tính toán trong các vòng lặp hoặc thuật toán quan trọng.
Lỗi thường gặp khi làm việc với mảng trong Python
Khi làm việc với mảng trong Python, lập trình viên – đặc biệt là người mới – có thể gặp phải một số lỗi phổ biến khiến chương trình không hoạt động như mong đợi. Một số lỗi thường gặp gồm:

- Sai type dữ liệu: Khi khởi tạo mảng, nếu bạn dùng sai typecode so với kiểu thực tế, Python sẽ báo lỗi TypeError.
- Thêm phần tử sai kiểu dữ liệu: Sau khi tạo mảng với kiểu cụ thể, nếu bạn cố thêm một giá trị không đúng kiểu (ví dụ: chèn float vào mảng int), sẽ gặp lỗi TypeError.
- Truy cập chỉ số không tồn tại: Nếu bạn truy xuất vượt quá phạm vi chỉ số của mảng, Python sẽ báo lỗi IndexError.
- Xóa thành phần không tồn tại bằng remove(): Nếu bạn gọi remove() với giá trị không có trong mảng, chương trình sẽ bị lỗi ValueError.
Qua bài viết này, bạn đã có cái nhìn đầy đủ về cách tạo mảng trong Python cũng như các thao tác phổ biến giúp xử lý dữ liệu nhanh chóng và hiệu quả. Nếu bạn vẫn còn băn khoăn rằng array trong Python kiểu mảng là gì, thì giờ đây bạn đã có thể hiểu rõ bản chất, ứng dụng của nó. Hãy theo dõi Sforum thường xuyên để biết thêm nhiều cách để nâng cao kỹ năng lập trình của mình nhé!
Xem thêm bài viết trong chuyên mục: Ứng dụng/phần mềm, Python cơ bản

Bình luận (0)