Mảng là gì? Cách sử dụng mảng trong Python

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é!

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.

Mảng trong Python giúp bạn lưu trữ các giá trị dễ dàng
Mảng trong Python giúp bạn lưu trữ các giá trị 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 codeLoại dữ liệu PythonKích thước (byte)
iint2
Iint2
uunicode character2
hint2
Hint2
lint4
Lint4
ffloat4
dfloat8

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:

Các toán từ mảng cơ bản

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 ()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:


Got It Vietnam – Tham khảo: edureka.co

Nếu bạn quan tâm, hãy xem các vị trí đang tuyển dụng của Got It tại: bit.ly/gotit-hanoi và đọc thêm về quy trình tuyển dụng tại đây.

https://d1iv5z3ivlqga1.cloudfront.net/wp-content/uploads/2021/04/29235048/1_QAG9RXQyyMAY7i9OYo84FA.png
Got It Vietnam
September 08, 2021
Share this post to:
Tags:
1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback
Hướng dẫn xóa 1 phần tử trong mảng của Python - Blog | Got It AI
2 years ago

[…] 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. […]

Các bài viết liên quan

Các bước tạo một thư viện Python

Tác giả: Minh (Software Engineer | CAI) Trong Tech Blog số này, Got It sẽ cùng bạn tìm hiểu về 6 bước để tạo và phân phối một thư viện Python. Cụ thể, chúng ta sẽ viết một CLI command tương tự cowsay cùng với một function để các package khác có thể import và […]

Sử dụng pre-commit để thực thi PEP8 chỉ trong 3 bước

Tác giả: Kiên (Software Engineer | CAI) Đảm bảo code tuân thủ đầy đủ các quy tắc được đề xuất trong PEP8 là một điều vô cùng quan trọng, đặc biệt là trong làm việc nhóm, khi mà yếu tố dễ đọc, dễ hiểu, và dễ bảo trì code được đặt lên hàng đầu. Dẫu […]
Hướng dẫn cách triển khai và debug code Python trên Docker

Hướng dẫn cách triển khai và debug code Python trên Docker

Tác giả: Kiên (Software Engineer | CAI) Bạn đã bao giờ mất hàng tiếng đồng hồ, thậm chí vài ngày để cài đặt một số thư viện cần thiết cho việc chạy một project trên máy tính của mình chưa? Nếu có thì đây là bài viết dành cho bạn. Thông thường, khi bạn tham […]
Readable Code

Readable Code

Tác giả: Minh (Software Engineer, CAI) & Hương (TPM, CAI) Mục lục1. Readable code là gì?2. Làm thế nào để viết code dễ đọc?2.1. Style guide2.2. Viết function nhỏ, tập trung vào một tính năng2.3. Đặt tên hợp lý2.3.1. Dùng các tiền tố thích hợp để phân loại function2.3.2. Hạn chế thêm thông tin về […]
Tìm hiểu Tuple trong Python, phân biệt Tuple và List

Tìm hiểu Tuple trong Python, phân biệt Tuple và List

Ở bài viết này, chúng ta sẽ cùng đi tìm hiểu về Tuple trong Python, cách sử dụng chúng như thế nào, và sự khác biệt giữa Tuple và List là gì? Tất cả những nội dung trong bài đọc sẽ đều có ví dụ minh hoạ cụ thể, hi vọng các bạn đọc có […]
Anaconda là gì? Tìm hiểu nền tảng Khoa học dữ liệu phổ biến nhất

Anaconda là gì? Tìm hiểu nền tảng Khoa học dữ liệu phổ biến nhất

Để có thể tạo nên một ứng dụng của riêng mình, điều quan trọng nhất đó là phải thiết lập môi trường làm việc đúng cách. Vì vậy, bạn cần các công cụ để xử lý dữ liệu, xây dựng các mô hình và biểu diễn trên đồ thị. Việc sử dụng nhiều công cụ […]