List Python: Hộp Thần Kỳ Của Dân Code - Đừng Gọi Là Array Nữa!
Python

List Python: Hộp Thần Kỳ Của Dân Code - Đừng Gọi Là Array Nữa!

Author

Admin System

@root

Ngày xuất bản

21 Mar, 2026

Lượt xem

3 Lượt

"array"

Chào các 'code-hacker' tương lai! Hôm nay, anh Creyt sẽ giải mã một trong những khái niệm 'quốc dân' mà dân dev nào cũng phải 'thuộc lòng như cháo' – đó là Array. À mà khoan, ở Python, nó có cái tên 'sang chảnh' hơn, dễ gần hơn, đó là List! Cứ gọi nó là 'array' cũng được, nhưng nhớ trong Python, 'list' mới là 'trùm' nha.

Tưởng tượng thế này: bạn có một chiếc balo 'thần kỳ' không đáy, hoặc một cái tủ lạnh 'đa năng' mà bạn có thể nhét đủ thứ vào đó: từ chiếc điện thoại, cuốn sách, chai nước, đến cả cái 'meme' mới nhất bạn vừa 'săn' được. Mỗi món đồ là một 'phần tử', và chiếc balo đó chính là List của chúng ta. Nó giúp bạn gom một đống thứ linh tinh vào một chỗ, có trật tự, dễ quản lý.

List là gì và để làm gì?

List trong Python, về cơ bản, là một bộ sưu tập có thứ tự và có thể thay đổi được của các phần tử. Nghe hơi 'học thuật' đúng không? Dễ hiểu hơn này:

  • Có thứ tự (Ordered): Giống như playlist nhạc của bạn, bài nào trước bài nào sau là rõ ràng, không lẫn lộn. Mỗi phần tử có một 'số nhà' riêng, gọi là chỉ mục (index), bắt đầu từ 0.
  • Có thể thay đổi (Mutable): Bạn có thể thêm đồ vào balo, lấy đồ ra, thay cái này bằng cái kia bất cứ lúc nào. List cũng vậy, bạn có thể thêm, bớt, sửa phần tử sau khi tạo.
  • Chứa đủ thứ (Heterogeneous): Cái balo 'thần kỳ' của bạn có thể chứa điện thoại (kiểu string), sách (kiểu object), chai nước (kiểu float), thậm chí cả danh sách bạn bè (kiểu list lồng list!). List Python cũng 'bao dung' như vậy, chứa được đủ loại dữ liệu.

Vậy để làm gì? Đơn giản là để lưu trữ một đống dữ liệu liên quan mà bạn muốn quản lý chung. Thay vì tạo ten_ban_1 = "An", ten_ban_2 = "Binh", ten_ban_3 = "Chau", bạn chỉ cần danh_sach_ban = ["An", "Binh", "Chau"]. Nhìn gọn gàng, 'chill' hơn hẳn đúng không?

Code Ví Dụ Minh Hoạ

1. Tạo List

# List rỗng, sẵn sàng đón nhận mọi thứ
balo_cua_creyt = []

# List chứa đủ thứ
playlist_rap_viet = ["Bài này chill phết", "Đứa nào làm em buồn", "Từng là của nhau"]
diem_thi_hk1 = [8.5, 9.0, 7.5, 10.0]
thong_tin_sinh_vien = ["Nguyễn Văn A", 20, True, 8.75] # String, int, boolean, float - chơi tất!

2. Truy cập phần tử

# Nhớ: Index bắt đầu từ 0!
print(playlist_rap_viet[0]) # Output: Bài này chill phết
print(diem_thi_hk1[2])   # Output: 7.5

# Index âm để truy cập từ cuối list
print(playlist_rap_viet[-1]) # Output: Từng là của nhau (phần tử cuối cùng)

3. Thay đổi phần tử

playlist_rap_viet[1] = "Gái độc thân" # Thay bài "Đứa nào làm em buồn" bằng "Gái độc thân"
print(playlist_rap_viet) # Output: ['Bài này chill phết', 'Gái độc thân', 'Từng là của nhau']

4. Thêm/Xóa phần tử

# Thêm vào cuối (append)
playlist_rap_viet.append("Để anh kể em nghe")
print(playlist_rap_viet) # Output: ['Bài này chill phết', 'Gái độc thân', 'Từng là của nhau', 'Để anh kể em nghe']

# Chèn vào vị trí cụ thể (insert)
playlist_rap_viet.insert(1, "Anh nhà ở đâu thế?") # Chèn vào vị trí index 1
print(playlist_rap_viet) # Output: ['Bài này chill phết', 'Anh nhà ở đâu thế?', 'Gái độc thân', 'Từng là của nhau', 'Để anh kể em nghe']

# Xóa theo giá trị (remove)
playlist_rap_viet.remove("Từng là của nhau")
print(playlist_rap_viet) # Output: ['Bài này chill phết', 'Anh nhà ở đâu thế?', 'Gái độc thân', 'Để anh kể em nghe']

# Xóa theo index và lấy giá trị ra (pop)
bai_hat_bi_xoa = playlist_rap_viet.pop(0) # Xóa bài đầu tiên
print(bai_hat_bi_xoa) # Output: Bài này chill phết
print(playlist_rap_viet) # Output: ['Anh nhà ở đâu thế?', 'Gái độc thân', 'Để anh kể em nghe']

5. Duyệt List (Loops)

for bai_hat in playlist_rap_viet:
    print(f"Nghe ngay: {bai_hat}")

# Duyệt kèm index
for index, diem in enumerate(diem_thi_hk1):
    print(f"Môn thứ {index + 1} được {diem} điểm.")

6. Một số hàm hữu ích

print(f"Số lượng bài trong playlist: {len(playlist_rap_viet)}") # Output: 3

numbers = [5, 2, 8, 1, 9]
numbers.sort() # Sắp xếp tăng dần
print(numbers) # Output: [1, 2, 5, 8, 9]

numbers.reverse() # Đảo ngược thứ tự
print(numbers) # Output: [9, 8, 5, 2, 1]
Illustration

Mẹo và Best Practices (Creyt's Tips)

Này, nghe anh Creyt dặn dò vài điều 'xương máu' để code List mượt mà như 'lướt TikTok không giật lag' nhé:

  • Đặt tên biến có tâm: Đừng đặt a = [1,2,3]. Hãy đặt danh_sach_sinh_vien, diem_mon_hoc. Tên biến rõ ràng giúp bạn (và đồng đội) không 'lạc trôi' khi đọc lại code.
  • Index từ 0, nhớ kỹ!: Đây là lỗi 'kinh điển' của lính mới. Luôn nhớ phần tử đầu tiên là [0], không phải [1]. Sai cái này là 'toang' ngay lỗi IndexError: list index out of range!
  • append() vs extend():
    • append() thêm một phần tử duy nhất vào cuối list (có thể là một list khác, khi đó list con sẽ là một phần tử).
    • extend() thêm tất cả các phần tử từ một iterable (như list khác) vào cuối list hiện tại.
    list_a = [1, 2]
    list_b = [3, 4]
    
    list_a.append(list_b)
    print(list_a) # Output: [1, 2, [3, 4]] - list_b là một phần tử
    
    list_c = [1, 2]
    list_d = [3, 4]
    list_c.extend(list_d)
    print(list_c) # Output: [1, 2, 3, 4] - các phần tử của list_d được thêm vào
    
    Thấy khác biệt chưa? Dùng đúng chỗ để tránh 'bug' không đáng có!
  • List Comprehensions (Ngắn gọn, chuyên nghiệp): Muốn code 'ngầu' hơn? Hãy làm quen với List Comprehensions. Nó giúp bạn tạo list mới từ list cũ một cách cực kỳ ngắn gọn và hiệu quả.
    diem_goc = [7, 8, 9, 6, 10]
    diem_cong_them = [diem + 1 for diem in diem_goc if diem < 10]
    print(diem_cong_them) # Output: [8, 9, 10, 7]
    
    Nhìn 'pro' hơn hẳn đúng không?
  • List hay Tuple? List thì 'linh hoạt' như balo của bạn, thêm bớt thoải mái. Nhưng nếu bạn có một bộ dữ liệu mà bạn không muốn nó bị thay đổi sau khi tạo (ví dụ: tọa độ một điểm, thông tin cá nhân cố định), hãy dùng Tuple. Tuple là 'bất biến' (immutable), an toàn hơn khi bạn muốn dữ liệu 'chắc như đinh đóng cột'. Anh Creyt sẽ giải thích Tuple kỹ hơn trong một buổi khác, nhưng giờ cứ nhớ: cần thay đổi thì List, không cần thì Tuple.

Ví dụ thực tế (Ứng dụng "khủng" của List)

Anh em mình dùng List mỗi ngày mà không hay biết đấy!

  • Mạng xã hội (Facebook, Zalo, Instagram): Danh sách bạn bè, danh sách những người bạn theo dõi, feed bài viết của bạn bè (một list các post), danh sách ảnh bạn đã upload... tất cả đều là List đấy!
  • Nền tảng Streaming (Spotify, YouTube, Netflix): Playlist nhạc, danh sách video gợi ý, danh sách phim đã xem, danh sách phim yêu thích... chuẩn List luôn!
  • Game Online (LOL, Free Fire, Genshin Impact): Inventory đồ của nhân vật, danh sách kỹ năng, danh sách nhiệm vụ, bảng xếp hạng... không có List thì làm sao mà quản lý được đống đồ 'khủng' đó?
  • Thương mại điện tử (Shopee, Lazada, Tiki): Giỏ hàng của bạn (một list các sản phẩm), danh sách sản phẩm yêu thích, danh sách các đơn hàng đã mua.
  • Hệ điều hành: Danh sách các tệp tin trong một thư mục, danh sách các tiến trình đang chạy.

Thử nghiệm đã từng và Hướng dẫn nên dùng cho case nào (Creyt's Experience)

Anh Creyt đã 'chinh chiến' với List từ những ngày đầu 'làm quen' với Python. Hồi xưa, anh từng dùng List để:

  • Xây dựng một hệ thống quản lý thư viện sách đơn giản: Mỗi cuốn sách là một dictionary, và anh gom tất cả các dictionary đó vào một List lớn. Dễ dàng thêm sách, xóa sách, tìm kiếm sách theo tên.
  • Làm game 'Rắn săn mồi' phiên bản console: Tọa độ từng khúc thân rắn là một cặp (x, y) lưu trong List. Khi rắn di chuyển, anh chỉ việc thêm tọa độ đầu mới vào List và xóa tọa độ đuôi cũ đi.
  • Phân tích dữ liệu 'sơ khai': Đọc dữ liệu từ file Excel, CSV vào List để xử lý.

Vậy khi nào thì 'triển' List?

  • Khi bạn cần một bộ sưu tập mà thứ tự của các phần tử là quan trọng. (Ví dụ: danh sách các bước trong một quy trình).
  • Khi bạn cần thêm, bớt, hoặc thay đổi các phần tử thường xuyên. (Ví dụ: giỏ hàng online, danh sách người chơi trong game).
  • Khi bạn muốn lưu trữ các kiểu dữ liệu khác nhau trong cùng một bộ sưu tập. (Mặc dù Tuple cũng làm được, nhưng List linh hoạt hơn khi cần thay đổi).
  • Khi bạn cần lặp qua các phần tử một cách dễ dàng.

Khi nào nên cân nhắc các 'công cụ' khác?

  • Nếu bạn cần một tập hợp các phần tử DUY NHẤT và KHÔNG CẦN THỨ TỰ: Dùng Set. (Ví dụ: danh sách các tags mà không muốn trùng lặp).
  • Nếu bạn cần lưu trữ dữ liệu dưới dạng CẶP KHÓA-GIÁ TRỊ: Dùng Dictionary. (Ví dụ: thông tin cá nhân {"ten": "An", "tuoi": 20}).
  • Nếu bạn làm việc với dữ liệu số lượng lớn, cần hiệu năng cao và các phép toán ma trận: Lúc đó hãy nghĩ đến numpy.array (thường dùng trong khoa học dữ liệu, AI). Nhưng đó là 'level' cao hơn, giờ cứ 'master' List cái đã!

Hy vọng với bài hướng dẫn này, các bạn đã hiểu rõ về List trong Python rồi nhé. Hãy thực hành thật nhiều để 'nâng trình' code của mình!

Thuộc Series: Python

Bài giảng này được tự động xuất bản ngẫu nhiên từ thư viện kiến thức. Đừng quên đón xem các Từ khoá Hướng Dẫn tiếp theo nhé!

#tech #cyberpunk #laravel
Chỉnh sửa bài viết

Bình luận (0)

Vui lòng Đăng Nhập để Bình luận

Hỗ trợ Markdown cơ bản
Nguyễn Văn A
1 ngày trước

Tính năng này đỉnh quá ad ơi, chờ mãi mới thấy một blog Tiếng Việt có UI/UX xịn như vầy!