Khám Phá Danh Sách Nâng Cao Trong Python: List Comprehension & Danh Sách Lồng Nhau

Khám Phá Danh Sách Nâng Cao Trong Python: List Comprehension & Danh Sách Lồng Nhau

Khám Phá Danh Sách Nâng Cao Trong Python: List Comprehension & Danh Sách Lồng Nhau

Trong hành trình học Python, danh sách (list) là người bạn đồng hành quan trọng. Nhưng khi bạn muốn xử lý dữ liệu hiệu quả và linh hoạt hơn, đã đến lúc tìm hiểu các kỹ thuật nâng cao như list comprehension (rút gọn danh sách) và danh sách lồng nhau (nested list).

⚡ List Comprehension: Viết Danh Sách Thật Ngắn Gọn

Thay vì viết nhiều dòng code để xây dựng một danh sách mới, bạn có thể sử dụng cú pháp gọn gàng chỉ trong một dòng.

Cấu trúc cơ bản:

Python
[biểu_thức for biến in iterable nếu điều_kiện]

🔹 Ví dụ 1: Tạo danh sách bình phương các số

Cách truyền thống:

Python
binh_phuong = []
for x in range(5):
    binh_phuong.append(x ** 2)

List comprehension:

Python
binh_phuong = [x ** 2 for x in range(5)]
# Kết quả: [0, 1, 4, 9, 16]

🔹 Ví dụ 2: Lọc số chẵn

Cách truyền thống:

Python
so_chan = []
for x in range(10):
    if x % 2 == 0:
        so_chan.append(x)

List comprehension:

Python
so_chan = [x for x in range(10) if x % 2 == 0]
# Kết quả: [0, 2, 4, 6, 8]

🔹 Ví dụ 3: Chuyển chuỗi sang chữ in hoa

Cách truyền thống:

Python
ten = ["Hà", "Minh", "Trang"]
ten_in_hoa = []
for t in ten:
    ten_in_hoa.append(t.upper())

List comprehension:

Python
ten_in_hoa = [t.upper() for t in ten]
# Kết quả: ['HÀ', 'MINH', 'TRANG']

🔹 Ví dụ 4: Tạo danh sách các cặp số

Cách truyền thống:

Python
cap_so = []
for x in range(3):
    for y in range(2):
        cap_so.append((x, y))

List comprehension:

Python
cap_so = [(x, y) for x in range(3) for y in range(2)]
# Kết quả: [(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)]

🔹 Ví dụ 5: Tạo tổ hợp không trùng lặp

Cách truyền thống:

Python
to_hop = []
for x in range(1, 4):
    for y in range(1, 4):
        if x != y:
            to_hop.append((x, y))

List comprehension:

Python
to_hop = [(x, y) for x in range(1, 4) for y in range(1, 4) if x != y]
# Kết quả: [(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)]

🧱 Danh Sách Lồng Nhau (Nested Lists)

Python cho phép bạn tạo danh sách bên trong danh sách, giúp mô phỏng ma trận, bảng dữ liệu, hay cấu trúc phân cấp.

Python
ma_tran = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

Đây là một ma trận 3×3 – mỗi dòng là một danh sách con.

Truy cập phần tử trong danh sách lồng nhau

Python
print(ma_tran[0][1])  # Kết quả: 2 (dòng 0, cột 1)

Duyệt qua danh sách lồng nhau

Python
for dong in ma_tran:
    for phan_tu in dong:
        print(phan_tu, end=" ")

Kết quả: in ra từng phần tử theo thứ tự từ trên xuống, trái sang phải.

Ví dụ Ứng Dụng Thực Tế

✅ Tính tổng tất cả phần tử trong danh sách lồng nhau

Python
tong = 0
for dong in ma_tran:
    for so in dong:
        tong += so
print("Tổng:", tong)  # Kết quả: 45

Tìm giá trị lớn nhất

Python
lon_nhat = float('-inf')
for dong in ma_tran:
    for so in dong:
        if so > lon_nhat:
            lon_nhat = so
print("Lớn nhất:", lon_nhat)  # Kết quả: 9

Hiểu và áp dụng thành thạo các kỹ thuật list nâng cao giúp bạn viết code Python:

  • Gọn gàng hơn
  • Hiệu quả hơn
  • Dễ bảo trì hơn

Dù là xử lý dữ liệu, xây dựng giao diện, hay làm việc với file CSV, list comprehension và danh sách lồng nhau sẽ là vũ khí mạnh mẽ trong kho công cụ của bạn.

Leave a Reply