Mảng Python Mảng phần tất ngơn ngữ lập trình, tập hợp phần tử kiểu liệu nhất, ví dụ mảng số ngun, mảng chuỗi Khơng giống mảng, list lưu trữ phần tử với kiểu liệu làm thứ mà mảng làm Chúng ta lưu trữ số nguyên, số thập phân, chuỗi list Vì thế, làm việc với list linh hoạt Tuy nhiên, Python, khơng có cấu trúc liệu mảng gốc Vì vậy, sử dụng list Python thay cho mảng Một mảng giá trị số hỗ trợ Python mô-đun array Ghi chú: Nếu bạn muốn tạo mảng thực Python, bạn cần phải sử dụng cấu trúc liệu mảng NumPy Để giải vấn đề toán học mảng NumPy hiệu List mơ-đun array Python Bạn thao tác với list giống mảng ép kiểu phần tử lưu trữ list Ví dụ: a= [1, 3.5, "Hello"] Nếu bạn tạo mảng sử dụng mô-đun array, tất phần tử mảng phải có kiểu số import array as arr a = arr.array('d', [1, 3.5, "Hello"]) // Chạy code báo lỗi Làm để tạo mảng Python? Từ ví dụ bạn đốn được, cần nhập mơ-đun array để tạo mảng Ví dụ: import array as arr a = arr.array('d',[1.1, 3.5, 4.5])print(a) Code tạo mảng có kiểu float Chữ 'd' mã kiểu, định kiểu mảng trình tạo Dưới mã kiểu thường dùng: Mã kiểu C Type Kích thước tối thiểu tính theo byte Python Type 'b' signed char int 'B' unsigned char int 'u' Py_UNICODE Unicode character 'h' signed short int 'H' unsigned short int 'i' signed int int 'I' unsigned int int 'l' signed long int 'L' unsigned long int 'f' float float 'd' double float Ta không thảo luận kiểu liệu C khác Ta dùng mã 'i' cho số nguyên 'd' cho số thập phân toàn Ghi chú: Mã code 'u' cho ký tự Unicode khơng cịn chấp nhận từ phiên Python 3.3 Tránh dụng Làm để truy cập vào phần tử mảng? Chúng ta sử dụng index để truy cập đến phần tử mảng Index 0, tương tự 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 ta được: Phần tử đầu tiên: Phần tử thứ 2: Phần tử cuối cùng: Bạn truy cập vào dải phần tử 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ứ đến 5print(numbers_array[:-5]) # Phần tử đến 4print(numbers_array[5:]) # Phần tử thứ đến hếtprint(numbers_array[:]) # Phần tử đến cuối Khi bạn chạy code nhận 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ử mảng Python Mảng thay đổi, phần tử thay đổi theo cách tương tự list import array as arrnumbers = arr.array('i', [1, 1, 2, 5, 7, 9])# thay đổi phần tử đầu tiênnumbers[0] = print(numbers) # Output: array('i', [0, 1, 2, 5, 7, 9])# thay phần tử thứ đế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ục vào list sử dụng append() 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]) mảng nối lại thành 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ử mảng Python Để xóa nhiều phần tử 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 tồn mảngprint(number) # Error: array 'number' is not defined Có thể sử dụng remove() để xóa mục cho 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 tìm hiểu thêm phương thức mảng Python Khi sử dụng mảng? List linh hoạt mảng, chúng lưu trữ phần tử với nhiều kiểu liệu khác nhau, bao gồm chuỗi List nhanh mảng, lại cần dùng mảng? Nếu bạn phải thực phép tính tốn toán học rên mảng ma trận, bạn nên sử dụng thư viện NumPy Trừ thực cần đến mảng (mơ-đun mảng cần để giao tiếp với code C), không đừng sử dụng chúng