DANH MỤC TÀI LIỆU
Mảng trong Python
Mảng trong Python
Mảng là một phần cơ bản của tất cả các ngôn ngữ lập trình, nó là tập hợp các
phần tử của một kiểu dữ liệu duy nhất, ví dụ mảng số nguyên, mảng chuỗi.
Không giống như mảng, mỗi list có thể lưu trữ phần tử với bất kỳ kiểu dữ
liệu nào và làm được mọi thứ mà mảng có thể làm. Chúng ta có thể lưu trữ số
nguyên, số thập phân, chuỗi trong cùng một list. Vì thế, làm việc với list khá
linh hoạt. Tuy nhiên, trong Python, không có cấu trúc dữ liệu mảng gốc. Vì
vậy, chúng ta sử dụng các list Python thay cho mảng.
Một mảng các giá trị số được hỗ trợ trong Python bởi mô-đun array.
Ghi chú: Nếu bạn muốn tạo mảng thực sự trong Python, bạn cần phải sử dụng
cấu trúc dữ liệu mảng của NumPy. Để giải quyết các vấn đề toán học thì
mảng NumPy sẽ hiệu quả hơn.
List và mô-đun array trong Python
Bạn có thể thao tác với list giống như mảng nhưng không thể ép kiểu phần tử
được lưu trữ trong list. Ví dụ:
a= [1, 3.5, "Hello"]
Nếu bạn tạo mảng sử dụng mô-đun array, tất cả các phần tử của mảng phải có
cùng kiểu số.
import array as arr
a = arr.array('d', [1, 3.5, "Hello"]) // Chạy code này sẽ báo lỗi
Làm thế nào để tạo mảng trong Python?
Từ những ví dụ trên bạn có thể đoán được, chúng ta cần nhập mô-đun array
để tạo các mảng. Ví dụ:
import array as arr
a = arr.array('d',[1.1, 3.5, 4.5])print(a)
Code trên tạo mảng có kiểu oat. Chữ 'd' là mã kiểu, quyết định kiểu của mảng trong quá trình tạo. Dưới
đây là những mã kiểu thường dùng:
kiểu C Type Python Type Kích thước tối thiểu tính theo
byte
'b' signed char int 1
'B' unsigned char int 1
'u' Py_UNICODE Unicode character 2
'h' signed short int 2
'H' unsigned short int 2
'i' signed int int 2
'I' unsigned int int 2
'l' signed long int 4
'L' unsigned long int 4
'f' float float 4
'd' double float 8
Ta sẽ không thảo luận về các kiểu dữ liệu C khác nhau trong bài này. Ta sẽ
dùng mã 'i' cho số nguyên và 'd' cho số thập phân trong toàn bài.
Ghi chú: Mã code 'u' cho các ký tự Unicode không còn được chấp nhận từ
phiên bản Python 3.3. Tránh sự dụng nó khi có thể.
Làm sao để truy cập vào các phần tử của mảng?
Chúng ta sử dụng index để truy cập đến các phần tử của mảng. Index cũng
bắt đầu từ 0, tương tự như trong list Python.
import array as arra = arr.array('i', [2, 4, 6, 8])print("Phần tử đầu tiên:",
a[0])print("Phần tử thứ 2:", a[1])print("Phần tử cuối cùng:", a[-1])
Chạy chương trình trên ta được:
Phần tử đầu tiên: 2
Phần tử thứ 2: 4
Phần tử cuối cùng: 8
Bạn có thể truy cập vào một dải phần tử trong mảng, sử dụng toán tử cắt
lát :.
import array as arrnumbers_list = [5, 85, 65, 15, 95, 52, 36,
25]numbers_array = arr.array('i', numbers_list)print(numbers_array[2:5]) #
Phần tử thứ 3 đến 5print(numbers_array[:-5]) # Phần tử đầu tiên đến
4print(numbers_array[5:]) # Phần tử thứ 6 đến hếtprint(numbers_array[:]) #
Phần tử đầu tiên đến cuối cùng
Khi bạn chạy code trên sẽ nhận được output là:
array('i', [65, 15, 95])
array('i', [5, 85, 65])
array('i', [52, 36, 25])
array('i', [5, 85, 65, 15, 95, 52, 36, 25])
Thay đổi, thêm phần tử trong mảng Python
Mảng có thể thay đổi, các phần tử của nó có thể thay đổi theo cách tương tự
như list.
import array as arrnumbers = arr.array('i', [1, 1, 2, 5, 7, 9])# thay đổi phần tử
đầu tiênnumbers[0] = 0 print(numbers) # Output: array('i', [0, 1, 2, 5, 7, 9])#
thay phần tử thứ 3 đến thứ 5numbers[2:5] = arr.array('i', [4, 6, 8])
print(numbers) # Output: array('i', [0, 1, 4, 6, 8, 9])
Bạn có thêm một mục vào list sử dụng append() hoặc thêm vài mục sử dụng
extend():
import array as arrnumbers = arr.array('i', [3, 5,
7])numbers.append(4)print(numbers) # Output: array('i', [3, 5, 7, 4])#
extend() nối vào cuối mảngnumbers.extend([5, 6, 7]) print(numbers) #
Output: array('i', [3, 5, 7, 4, 5, 6, 7])
2 mảng cũng có thể nối lại thành một nhờ toán tử +:
import array as arrmang_le = arr.array('i', [3, 5, 7])mang_chan = arr.array('i',
[2, 6, 8])numbers = arr.array('i') # tạo mảng trốngnumbers = mang_le +
mang_chan# Code by quantrimang.comprint(numbers) # Output: array('i', [3,
5, 7, 2, 6, 8])
Xóa phần tử của mảng trong Python
Để xóa một hoặc nhiều phần tử của mảng ta sử dụng lệnh del.
import array as arrnumber = arr.array('i', [1, 3, 3, 5, 7])del number[2] # xóa
phần tử thứ 3print(number) # Output: array('i', [1, 3, 5, 7])del number # xóa
toàn bộ mảngprint(number) # Error: array 'number' is not defined
Có thể sử dụng remove() để xóa mục đã cho hoặc pop() để xóa mục với index
cho trước:
import array as arrnumbers = arr.array('i', [1, 1, 3, 5,
9])numbers.remove(1)print(numbers) # Output: array('i', [1, 3, 5,
9])print(numbers.pop(2)) # Output: 12print(numbers) # Output: array('i', [1,
3, 9])
Bạn có thể tìm hiểu thêm về các phương thức của mảng Python tại đây.
Khi nào thì sử dụng mảng?
List linh hoạt hơn mảng, chúng có thể lưu trữ phần tử với nhiều kiểu dữ liệu
khác nhau, bao gồm cả chuỗi. List cũng nhanh hơn mảng, vậy thì tại sao lại
cần dùng mảng? Nếu bạn phải thực hiện những phép tính toán toán học rên
mảng và ma trận, bạn nên sử dụng thư viện NumPy. Trừ khi thực sự cần đến
mảng (mô-đun mảng có thể cần để giao tiếp với các code C), nếu không đừng
sử dụng chúng.
thông tin tài liệu
Mảng là một phần cơ bản của tất cả các ngôn ngữ lập trình, nó là tập hợp các phần tử của một kiểu dữ liệu duy nhất, ví dụ mảng số nguyên, mảng chuỗi.
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×