Mảng trong Python là loại cấu trúc dữ liệu có thể chứa nhiều giá trị cùng kiểu. Thông thường, chúng bị hiểu sai thành các lists hoặc mảng Numpy. Về mặt kỹ thuật, mảng trong Python khác với cả hai khái niệm trên. Trong bài viết này, hãy cùng tìm hiểu xem mảng trong Python là gì và cách triển khai nó nhé!
Mục lục
I. Tại sao lại sử dụng mảng trong Python?
Sự kết hợp của mảng cùng với Python có thể giúp bạn tiết kiệm rất nhiều thời gian. Mảng giúp bạn giảm kích thước tổng thể của code, trong khi Python giúp bạn loại bỏ những cú pháp có vấn đề, điều mà các ngôn ngữ khác không làm được.
Ví dụ: Nếu bạn phải lưu trữ các số nguyên từ 1-100, bạn sẽ không thể nhớ chính xác 100 tên biến. Mảng sẽ giúp bạn lưu trữ chúng một cách dễ dàng.
Khi đã hiểu tầm quan trọng của mảng trong Python, hãy cùng tiếp tục đi sâu vào các kiến thức chi tiết trong những phần dưới đây.
II. Mảng trong Python là gì?
Mảng về cơ bản là một cấu trúc dữ liệu có thể chứa nhiều giá trị cùng một lúc. Nó là một tập hợp hoặc một loạt các phần tử (có thứ tự) cùng loại. Ví dụ:
a=arr.array('d',[1.2,1.3,2.3])
Chúng ta có thể chạy vòng lặp qua các mảng một cách dễ dàng và tìm nạp các giá trị cần thiết bằng cách xác định số chỉ mục (index number). Mảng cũng có thể thay đổi, do đó, bạn có thể thực hiện các thao tác khác nhau theo yêu cầu.
Tiếp đến, câu hỏi được đặt ra là:
III. List có giống với mảng trong Python không?
Mảng và lists trong Python có điểm tương đồng khi cùng lưu trữ các giá trị. Tuy nhiên, sự khác biệt nằm ở các giá trị mà chúng lưu trữ. Một list có thể lưu trữ bất kỳ loại giá trị nào như số xen kẽ, chuỗi, v.v. Trong khi đó, mảng lưu trữ các giá trị kiểu dữ liệu đơn lẻ. Ví dụ, bạn có thể có một mảng số nguyên, một mảng chuỗi, v.v.
IV. Cách tạo một mảng trong Python
Mảng trong Python có thể được tạo ra sau khi nhập module như sau:
→ import array as arr
Hàm array(data type, value list) nhận hai tham số, tham số đầu tiên là kiểu dữ liệu của giá trị được lưu trữ và tham số thứ hai là list giá trị. Kiểu dữ liệu có thể là bất cứ thứ gì, chẳng hạn như int, float, double, v.v. Bạn hãy lưu ý rằng arr chỉ là tên bí danh (alias) để dễ sử dụng. Bạn cũng có thể nhập mà không cần bí danh. Có một cách khác để nhập module mảng là:
→ from array import *
Dòng này có nghĩa bạn muốn nhập tất cả các hàm từ module mảng.
Dưới đây là cú pháp để tạo một mảng:
Cú pháp:
a=arr.array(data type,value list) #when you import using arr alias
Hoặc:
a=array(data type,value list) #when you import using *
Ví dụ: a=arr.array( ‘d’ , [1.1 , 2.1 ,3.1] )
Ở đây, tham số đầu tiên là ‘d’, một kiểu dữ liệu float và các giá trị được chỉ định làm tham số tiếp theo.
Ghi chú:
Tất cả các giá trị được chỉ định là kiểu float. Bạn không thể chỉ định các giá trị của các kiểu dữ liệu khác nhau cho một mảng.
Bảng sau đây cho bạn thấy các loại dữ liệu khác nhau và codes của chúng:
Loại code | Loại dữ liệu Python | Kích thước (byte) |
i | int | 2 |
I | int | 2 |
u | unicode character | 2 |
h | int | 2 |
H | int | 2 |
l | int | 4 |
L | int | 4 |
f | float | 4 |
d | float | 8 |
V. Truy cập các phần tử của mảng trong Python
Để truy cập các phần tử của mảng, bạn cần chỉ định các giá trị chỉ mục (index values). Việc lập chỉ mục bắt đầu từ 0 chứ không phải từ 1. Do đó, số chỉ mục luôn nhỏ hơn 1 so với độ dài của mảng.
Cú pháp:
Array_name[index value]
Ví dụ:
a=arr.array( 'd', [1.1 , 2.1 ,3.1] )
a[1]
Kết quả:
2.1
Kết quả trả về là giá trị nằm ở vị trí thứ hai trong mảng: 2.1.
VI. Cách tìm độ dài của một mảng
Độ dài của mảng là số lượng phần tử thực sự có trong một mảng. Bạn có thể sử dụng hàm len () để tìm được độ dài của mảng. Hàm len () sẽ trả về một giá trị nguyên bằng số phần tử có trong mảng đó.
Cú pháp:
→ len(array_name)
Ví dụ:
a=arr.array('d', [1.1 , 2.1 ,3.1] )
len(a)
Kết quả:
3
Kết quả trả về là 3, chính là số phần tử có trong mảng.
VII. Các thao tác cơ bản với mảng
Có rất nhiều thao tác có thể được thực hiện trong mảng:
1. Bổ sung/ Thay đổi các phần tử trong mảng
Chúng ta có thể thêm giá trị vào một mảng bằng cách sử dụng các hàm append (), extend () và insert (i, x).
Hàm append () được sử dụng khi chúng ta cần thêm một phần tử vào cuối mảng.
Ví dụ:
a=arr.array('d', [1.1 , 2.1 ,3.1] )
a.append(3.4)
print(a)
Kết quả:
array(‘d’, [1.1, 2.1, 3.1, 3.4])
Kết quả cho ra một mảng thực tế với giá trị mới được thêm vào cuối nó.
Để bổ sung thêm nhiều phần tử, bạn có thể sử dụng hàm extend (). Hàm này nhận một list các phần tử làm tham số của nó. Nội dung của list này là các phần tử được thêm vào mảng.
Ví dụ:
a=arr.array('d', [1.1 , 2.1 ,3.1] )
a.extend([4.5,6.3,6.8])
print(a)
Kết quả:
array(‘d’, [1.1, 2.1, 3.1, 4.5, 6.3, 6.8])
Kết quả là một mảng chứa tất cả 3 phần tử mới được thêm vào cuối mảng.
Tuy nhiên, khi bạn cần thêm một phần tử cụ thể tại một vị trí xác định trong mảng, hàm insert (i, x) có thể được sử dụng. Hàm này sẽ chèn phần tử vào chỉ mục tương ứng trong mảng. Nó nhận 2 tham số, trong đó tham số đầu tiên là chỉ mục nơi phần tử cần được chèn vào và tham số thứ hai là giá trị.
Ví dụ:
a=arr.array('d', [1.1 , 2.1 ,3.1] )
a.insert(2,3.8)
print(a)
Kết quả:
array(‘d’, [1.1, 2.1, 3.8, 3.1])
Kết quả là một mảng chứa giá trị 3.8 ở vị trí thứ 3.
2. Nối mảng
Mảng cũng có thể được hợp nhất bằng cách thực hiện nối mảng. Bất kỳ hai mảng nào cũng có thể được hợp nhất với ký tự “+”.
Ví dụ:
a=arr.array('d',[1.1 , 2.1 ,3.1,2.6,7.8])
b=arr.array('d',[3.7,8.6])
c=arr.array('d')
c=a+b
print("Array c = ",c)
Kết quả:
Array c= array(‘d’, [1.1, 2.1, 3.1, 2.6, 7.8, 3.7, 8.6])
Có thể thấy, mảng c là sự kết hợp các phần tử của mảng a và b.
3. Xoá bỏ các phần tử của một mảng
Các phần tử của mảng có thể được xóa bằng phương thức pop () hoặc remove (). Sự khác biệt giữa hai hàm này là hàm pop () trả về giá trị đã xóa trong khi hàm remove () thì không.
Hàm pop () không nhận tham số hoặc giá trị chỉ mục làm tham số của nó. Khi không có tham số nào được đưa ra, hàm này lấy phần tử cuối cùng và trả về nó. Khi bạn cung cấp giá trị chỉ mục một cách rõ ràng, hàm pop () lấy các phần tử bắt buộc và trả về nó.
Ví dụ:
a=arr.array('d', [1.1, 2.2, 3.8, 3.1, 3.7, 1.2, 4.6])
print(a.pop())
print(a.pop(3))
Kết quả:
4.6
3.1
Hàm pop () đầu tiên đã lấy đi giá trị 4.6 và trả về kết quả tương tự, trong khi hàm thứ hai lấy phần tử ở vị trí thứ 4 là 3.1.
Hàm remove (), mặt khác, được sử dụng khi chúng ta không cần trả về giá trị đã loại bỏ. Hàm này lấy chính giá trị phần tử làm tham số. Nếu bạn cung cấp giá trị chỉ mục trong vùng tham số, nó sẽ tạo ra lỗi.
Ví dụ:
a=arr.array('d',[1.1 , 2.1 ,3.1])
a.remove(1.1)
print(a)
Kết quả:
array(‘d’, [2.1,3.1])
Kết quả cho ra một mảng chứa các phần tử ngoại trừ giá trị 1.1.
4. Cắt một mảng
Khi bạn muốn lấy một phạm vi giá trị cụ thể từ một mảng, bạn có thể cắt mảng để trả về giá trị tương tự. Một mảng có thể được cắt bằng cách sử dụng ký tự “:”. Kết quả trả về sẽ là một loạt các phần tử mà bạn đã chỉ định bởi các số chỉ mục.
Ví dụ:
a=arr.array('d',[1.1 , 2.1 ,3.1,2.6,7.8])
print(a[0:3])
Kết quả:
array(‘d’, [1.1, 2.1, 3.1])
Kết quả trả về là các phần tử ở vị trí thứ 1, 2, 3 trong mảng.
5. Sử dụng vòng lặp đối với mảng
Sử dụng vòng lặp for, bạn có thể chạy vòng lặp qua một mảng.
Ví dụ:
a=arr.array('d', [1.1, 2.2, 3.8, 3.1, 3.7, 1.2, 4.6])
print("All values")
for x in a:
print(x)
print("specific values")
for x in a[1:3]:
print(x)
Kết quả:
All values
1.1
2.2
3.8
3.1
3.7
1.2
4.6
specific values
2.2
3.8
Kết quả ở trên được hiển thị bằng cách sử dụng vòng lặp for. Khi chúng ta sử dụng vòng lặp for mà không có bất kỳ tham số cụ thể nào, kết quả sẽ chứa tất cả các phần tử của mảng đã cho tại một thời điểm. Trong vòng lặp for thứ hai, kết quả chỉ chứa các phần tử được chỉ định bằng cách sử dụng các giá trị chỉ mục. Lưu ý rằng kết quả không chứa giá trị ở chỉ số 3.
Trên đây là những kiến thức quan trọng nhất về mảng trong Python. Chúng mình hy vọng bài viết này đã giúp bạn nắm bắt được nền tảng cơ bản về mảng và cách sử dụng nó trong Python. Để có thể nâng cao kỹ năng sử dụng Python của mình, bạn có thể tham khảo các bài tập cũng như tài liệu học tại:
- Tổng hợp bài tập Python cơ bản
- Tổng hợp tài liệu học Python theo 6 ngành hot nhất: Data Science, Machine Learning, Mobile Apps, v.v.
- Top 21 nguồn học lập trình Python online
Got It Vietnam – Tham khảo: edureka.co
[…] Mảng (array) và list trong Python không phải là cùng một thứ. Mặc dù list được sử dụng nhiều hơn mảng, mảng cũng có nhiều công dụng đáng chú ý. Có một số điểm có thể giúp bạn phân biệt mảng và list. […]