Cơ bảnKiến thức cơ bản

List trong Python: Tạo, thêm, xóa phần tử

7 phút đọc14 lượt xem
#list python#append python#python cơ bản#list comprehension#python array

List trong Python: Tạo, thêm, xóa phần tử

List là kiểu dữ liệu bạn sẽ dùng nhiều nhất khi lập trình Python — lưu danh sách sản phẩm, điểm số học sinh, kết quả truy vấn từ database đều cần đến nó. Bài này hướng dẫn từ cách tạo list đến các thao tác thêm, xóa, tìm kiếm và list comprehension.

List trong Python là gì?

List là kiểu dữ liệu có thứ tự, có thể thay đổi (mutable) và cho phép giá trị trùng lặp. Một list có thể chứa bất kỳ kiểu dữ liệu nào, kể cả trộn lẫn nhau.

# List trái cây
fruits = ["táo", "chuối", "xoài", "cam"]

# List số nguyên
numbers = [1, 2, 3, 4, 5]

# List hỗn hợp — hoàn toàn hợp lệ trong Python
mixed = [1, "hello", True, 3.14, None]

# List rỗng
empty = []

print(type(fruits))   # <class 'list'>
print(len(fruits))    # 4

Truy cập phần tử

Python dùng index để truy cập từng phần tử. Index bắt đầu từ 0, và có thể dùng index âm để đếm từ cuối:

fruits = ["táo", "chuối", "xoài", "cam"]

print(fruits[0])    # "táo"   — phần tử đầu
print(fruits[3])    # "cam"   — phần tử cuối (index 3)
print(fruits[-1])   # "cam"   — phần tử cuối (cách viết khác)
print(fruits[-2])   # "xoài"  — kế cuối

Slicing — cắt lấy một đoạn

Cú pháp list[start:stop:step] cho phép lấy nhiều phần tử cùng lúc:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(nums[2:5])    # [2, 3, 4]        — từ index 2 đến 4
print(nums[:3])     # [0, 1, 2]        — 3 phần tử đầu
print(nums[7:])     # [7, 8, 9]        — từ index 7 đến cuối
print(nums[::2])    # [0, 2, 4, 6, 8]  — bước nhảy 2
print(nums[::-1])   # [9, 8, 7, ...]   — đảo ngược toàn bộ

Thêm phần tử vào list

Ba cách thêm phần tử, mỗi cách có mục đích khác nhau:

# append() — thêm vào cuối, nhanh nhất
fruits = ["táo", "chuối"]
fruits.append("xoài")
print(fruits)    # ["táo", "chuối", "xoài"]

# insert() — thêm vào vị trí cụ thể
fruits.insert(1, "nho")    # thêm "nho" vào index 1
print(fruits)    # ["táo", "nho", "chuối", "xoài"]

# extend() — thêm nhiều phần tử từ một iterable khác
more = ["cam", "dứa"]
fruits.extend(more)
print(fruits)    # ["táo", "nho", "chuối", "xoài", "cam", "dứa"]

Xóa phần tử khỏi list

Có bốn cách xóa — chọn cách nào tùy theo bạn biết giá trị hay vị trí:

# remove() — xóa theo giá trị (lần xuất hiện đầu tiên)
fruits = ["táo", "chuối", "xoài", "chuối"]
fruits.remove("chuối")
print(fruits)    # ["táo", "xoài", "chuối"]

# pop() — xóa theo index, trả về phần tử vừa xóa
fruits = ["táo", "chuối", "xoài"]
last = fruits.pop()      # xóa cuối → "xoài"
first = fruits.pop(0)    # xóa index 0 → "táo"

# del — xóa theo index, không trả về gì
fruits = ["táo", "chuối", "xoài"]
del fruits[1]
print(fruits)    # ["táo", "xoài"]

# clear() — xóa toàn bộ
fruits.clear()
print(fruits)    # []

Các phương thức thường dùng

# sort() — sắp xếp tại chỗ (thay đổi list gốc)
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
numbers.sort()                 # tăng dần
numbers.sort(reverse=True)     # giảm dần

# sorted() — trả về list mới, list gốc không đổi
original = [3, 1, 4, 1, 5]
sorted_list = sorted(original)

# reverse() — đảo ngược thứ tự
fruits = ["táo", "chuối", "xoài"]
fruits.reverse()
print(fruits)    # ["xoài", "chuối", "táo"]

# index() — tìm vị trí của phần tử
print(fruits.index("chuối"))    # 1

# count() — đếm số lần xuất hiện
numbers = [1, 2, 3, 2, 1, 2]
print(numbers.count(2))    # 3

List Comprehension — viết ngắn hơn, đọc tự nhiên hơn

Thay vì vòng lặp for nhiều dòng, list comprehension giúp tạo list mới trong một dòng:

# Bình phương các số từ 1 đến 5
squares = [i ** 2 for i in range(1, 6)]
print(squares)    # [1, 4, 9, 16, 25]

# Lọc chỉ lấy số chẵn rồi bình phương
even_squares = [i ** 2 for i in range(1, 11) if i % 2 == 0]
print(even_squares)    # [4, 16, 36, 64, 100]

# Viết hoa tên trái cây
fruits = ["táo", "chuối", "xoài"]
upper_fruits = [f.upper() for f in fruits]
print(upper_fruits)    # ["TÁO", "CHUỐI", "XOÀI"]

Bảng tổng hợp phương thức List

Phương thứcMô tảVí dụ
append(x)Thêm x vào cuốilst.append(4)
insert(i, x)Thêm x vào index ilst.insert(1, 4)
extend(lst2)Thêm tất cả phần tử từ lst2lst.extend([5,6])
remove(x)Xóa lần xuất hiện đầu tiên của xlst.remove(4)
pop(i)Xóa và trả về phần tử tại index ilst.pop(0)
clear()Xóa toàn bộ phần tửlst.clear()
index(x)Trả về index đầu tiên của xlst.index(4)
count(x)Đếm số lần x xuất hiệnlst.count(4)
sort()Sắp xếp tại chỗlst.sort()
reverse()Đảo ngược tại chỗlst.reverse()
copy()Tạo bản sao nông (shallow copy)lst2 = lst.copy()

Bài viết liên quan

Về tác giả

Ảnh đại diện tác giả Kenji — họa tiết hình học

Kenji

Kỹ sư phần mềm full-stack (Web), hơn 5 năm kinh nghiệm thực tế

  • Python
  • DB
  • Hạ tầng
  • Đào tạo & cố vấn
  • AI

Làm việc cùng đồng nghiệp người Việt, tôi thấy thiếu tài liệu kỹ thuật rõ ràng bằng tiếng Việt. codeahoc là nơi tôi chia sẻ theo hướng thực tế, dễ áp dụng.

Nguyên tắc nội dung

  • Ưu tiên nguồn gốc và góc nhìn từ thực tế triển khai.
  • Nếu có sai sót, nội dung sẽ được cập nhật và sửa kịp thời.

Khóa học liên quan

100 Days of Code: The Complete Python Pro Bootcamp

Học Python qua 100 dự án thực tế. Phù hợp cho người mới bắt đầu.

4.7
Xem khóa học →

Python for Data Science and Machine Learning Bootcamp

Học Data Science với Python: pandas, matplotlib, scikit-learn.

4.6
Xem khóa học →

Automate the Boring Stuff with Python

Tự động hóa công việc lặp đi lặp lại bằng Python.

4.6
Xem khóa học →

*Đây là liên kết liên kết (affiliate link). Chúng tôi có thể nhận hoa hồng nếu bạn mua khóa học qua liên kết này.