Khởi tạo Mảng Python: List Comprehensions và NumPy

1. Cơ bản về Khởi tạo Mảng (Danh sách) trong Python

Danh sách Python (mảng) là các cấu trúc dữ liệu linh hoạt có thể lưu trữ các phần tử của các kiểu dữ liệu khác nhau, và chúng là một khối xây dựng cơ bản trong lập trình Python. Trong bài viết này, chúng tôi sẽ giải thích cách khởi tạo mảng (danh sách) trong Python.

Danh sách Python là gì?

Danh sách là một cấu trúc dữ liệu dùng để nhóm các phần tử của các kiểu dữ liệu khác nhau, chẳng hạn như số và chuỗi, và đóng vai trò là “mảng” của Python. Nó có thể chứa các phần tử của các kiểu khác nhau, và bạn có thể tự do thêm hoặc xóa các phần tử sau khi khởi tạo.

example_list = [1, "Hello", True]
print(example_list)
# Output: [1, "Hello", True]

Khởi tạo Danh sách Rỗng

Để tạo một danh sách rỗng, sử dụng [] hoặc list(). Phương pháp này lý tưởng khi bạn dự định thêm các phần tử sau hoặc muốn dành chỗ cho một biến.

empty_list1 = []
empty_list2 = list()
print(empty_list1)  # Output: []
print(empty_list2)  # Output: []

Khởi tạo Danh sách với Số Lượng Phần Tử Cụ Thể

Trong Python, bạn có thể dễ dàng tạo một danh sách với số lượng phần tử cụ thể. Ví dụ, bạn có thể tạo một danh sách được khởi tạo với năm số không như sau.

initial_list = [0] * 5
print(initial_list)  
# Output: [0, 0, 0, 0, 0]

Phương pháp này hữu ích cho việc tạo một danh sách được điền đầy với giá trị đồng nhất.

Khởi tạo Danh sách Sử dụng Hàm list

Hàm list() hữu ích cho việc tạo danh sách từ các kiểu dữ liệu khác. Ví dụ, bạn có thể chuyển đổi một chuỗi thành danh sách hoặc chuyển đổi một tuple thành danh sách.

char_list = list("Python")
tuple_list = list((1, 2, 3))
print(char_list)  
# Output: ['P', 'y', 't', 'h', 'o', 'n']
print(tuple_list)  
# Output: [1, 2, 3]

Ad

2. Khởi tạo Danh sách với List Comprehension

List comprehensions là một cú pháp tiện lợi cho phép bạn viết mã Python ngắn gọn và hiệu quả. Chúng đặc biệt hữu ích cho việc khởi tạo danh sách dựa trên các điều kiện.

List Comprehension Cơ Bản

Ví dụ bên dưới khởi tạo một danh sách chứa các số nguyên từ 0 đến 9 sử dụng list comprehension.

numbers = [i for i in range(10)]
print(numbers)  
# Output: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

List Comprehension Có Điều Kiện

Bạn cũng có thể tạo một danh sách với các điều kiện. Ví dụ, bạn có thể viết một danh sách chỉ trích xuất các số chẵn như được hiển thị bên dưới.

even_numbers = [i for i in range(10) if i % 2 == 0]
print(even_numbers)  
# Output: [0, 2, 4, 6, 8]
Ad
侍エンジニア塾

3. Khởi tạo Danh sách Hai Chiều

Danh sách Python có thể đại diện cho các mảng đa chiều bằng cách chứa danh sách trong danh sách. Điều này cho phép bạn làm việc với các cấu trúc dữ liệu như bảng hoặc ma trận.

Cách Khởi tạo Danh sách Hai Chiều

Dưới đây là ví dụ về việc khởi tạo một danh sách hai chiều 3 × 3 sử dụng list comprehension. Cách tiếp cận này đảm bảo mỗi danh sách con là độc lập, ngăn chặn các thay đổi không mong muốn qua các tham chiếu chia sẻ.

matrix = [[0 for _ in range(3)] for _ in range(3)]
print(matrix)  
# Output: [[0, 0, 0], [0, 0, 0], [0, 0, 0]]

Lưu Ý: Vấn Đề Tham Chiếu Khi Khởi tạo Danh sách Hai Chiều

Nếu bạn viết nó như [[0] * 3] * 3, mỗi hàng sẽ tham chiếu đến cùng một đối tượng, vì vậy một thay đổi ở một nơi sẽ được phản ánh ở các hàng khác. Sử dụng list comprehension tạo ra mỗi hàng như một danh sách độc lập.

Ad

4. Các Thao Tác Mảng: Thêm Phần Tử và Nối

Danh sách Python có thể động thêm hoặc xóa phần tử và hợp nhất với các danh sách khác ngay cả sau khi khởi tạo. Phần này giải thích các thao tác cơ bản.

Thêm Phần Tử: Phương Thức append

Sử dụng append(), bạn có thể thêm một phần tử vào cuối danh sách.

my_list = [1, 2, 3]
my_list.append(4)
print(my_list)  
# Output: [1, 2, 3, 4]

Chèn Phần Tử: Phương Thức insert

insert() chèn một phần tử tại vị trí được chỉ định trong danh sách. Bằng cách chỉ định một chỉ số, bạn có thể chèn tại bất kỳ vị trí nào.

my_list = [1, 2, 3]
my_list.insert(1, 'new')
print(my_list)  
# Output: [1, 'new', 2, 3]

Nối Danh sách: Toán Tử +

Để nối nhiều danh sách, sử dụng toán tử +.

list1 = [1, 2, 3]
list2 = [4, 5]
combined_list = list1 + list2
print(combined_list)  
# Output: [1, 2, 3, 4, 5]

Ad
年収訴求

5. Các phương pháp khởi tạo khác: mô-đun array và NumPy

Python bao gồm một mô-đun array chuyên dụng cho tính toán số và thư viện NumPy, cho phép khởi tạo mảng bằng các cấu trúc dữ liệu khác ngoài danh sách.

Khởi tạo bằng mô-đun array

Mô-đun array của Python có thể lưu trữ các mảng cùng kiểu dữ liệu một cách hiệu quả, giúp giảm mức tiêu thụ bộ nhớ.

import array
int_array = array.array('i', [0] * 5)
print(int_array)  
# Output: array('i', [0, 0, 0, 0, 0])

Khởi tạo mảng đa chiều với NumPy

Với thư viện NumPy, bạn có thể xử lý hiệu quả các mảng đa chiều lớn, và nó thường được sử dụng trong tính toán khoa học và phân tích dữ liệu.

import numpy as np
numpy_array = np.zeros((3, 3))
print(numpy_array)
# Output:
# [[0. 0. 0.]
#  [0. 0. 0.]
#  [0. 0. 0.]]

Các mảng NumPy có hiệu suất tính toán cao và phù hợp hơn cho việc xử lý dữ liệu quy mô lớn so với danh sách tích hợp sẵn của Python.

Ad

6. So sánh các phương pháp khởi tạo mảng trong Python

Trong bài viết này, chúng tôi giải thích toàn diện cách khởi tạo danh sách và mảng trong Python. Bằng cách hiểu ưu điểm của mỗi phương pháp khởi tạo và chọn phương pháp phù hợp nhất cho trường hợp sử dụng của bạn, bạn có thể viết mã hiệu quả hơn.

  • Tạo một danh sách rỗng : Khởi tạo đơn giản bằng []list() .
  • List comprehensions : Dễ dàng tạo danh sách các phần tử dựa trên các điều kiện.
  • Danh sách đa chiều : Được biểu diễn dưới dạng danh sách danh sách, kèm theo các lưu ý quan trọng.
  • Thêm và nối các phần tử : Linh hoạt thao tác bằng các hàm append() , insert() , và toán tử + .
  • array và NumPy : Các cấu trúc dữ liệu phù hợp cho các kiểu số và xử lý dữ liệu đa chiều.

Bằng cách hiểu đặc điểm của mỗi phương pháp và thư viện và sử dụng chúng vào thời điểm thích hợp, bạn có thể thành thạo việc khởi tạo danh sách trong Python.

Ad