Chuyển đến nội dung chính

Hướng dẫn Vòng lặp For trong Python

Tìm hiểu cách triển khai Vòng lặp For trong Python để lặp qua một chuỗi, hoặc các hàng và cột của pandas dataframe.
Đã cập nhật 5 thg 10, 2026  · 5 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Giới thiệu

Giống như các ngôn ngữ lập trình khác, vòng lặp for trong Python hơi khác ở chỗ chúng hoạt động giống một bộ lặp (iterator) hơn là chỉ là một từ khóa for. Trong Python, không có cú pháp kiểu C như for(i=0; i<n; i++) mà bạn dùng for in n.

Chúng có thể được dùng để lặp qua một chuỗi thuộc kiểu list, string, tuple, set, array, data frame.

Với một danh sách phần tử, vòng lặp for có thể được dùng để lặp qua từng mục trong danh sách đó và thực thi.

Để lặp qua một dãy mục, vòng lặp For dùng hàm range. Hàm range trả về một danh sách mới gồm các số trong khoảng được chỉ định dựa trên độ dài của chuỗi.

Khi lặp qua một chuỗi, bạn cũng có thể dùng chỉ số của phần tử trong chuỗi để lặp, nhưng mấu chốt là trước tiên tính độ dài của danh sách rồi lặp trong phạm vi độ dài này.

Vòng lặp for trong Python bắt đầu từ chỉ số 0.

Hãy nhanh chóng chuyển sang phần triển khai.

Bạn cũng có thể xem video này để có hướng dẫn nhanh!

Bắt đầu học Python miễn phí

Python nâng cao

BasicSkill Level
4 giờ
1.4M learners
Nâng cao kỹ năng Khoa học dữ liệu của bạn bằng cách tạo trực quan hóa với Matplotlib và thao tác DataFrame bằng pandas.
See DetailsRight Arrow
Start Course

Triển khai vòng lặp

Đầu tiên, hãy in ra các số từ 1–10. Vì vòng lặp for trong Python đánh chỉ số từ 0 nên bạn sẽ cần cộng thêm một ở mỗi lần lặp; nếu không, kết quả sẽ là 0–9.

for i in range(10):
    print (i+1)

# 1
# 2
# 3
# 4
# 5
# 6
# 7
# 8
# 9
# 10

Hãy lặp qua chuỗi của từ Datacamp bằng vòng lặp for và chỉ in chữ cái a.

for i in "Datacamp":
    if i == 'a':
        print (i)

# a
# a
# a

Giả sử bạn muốn định nghĩa một danh sách phần tử và lặp qua từng phần tử một.

sequence = [1, 2, 8, 100, 200, 'datacamp', 'tutorial']
for i in sequence:
    print (i)

# 1
# 2
# 8
# 100
# 200
# datacamp
# tutorial

Nhưng nếu bạn muốn tìm độ dài của danh sách rồi mới lặp qua thì sao? Bạn sẽ dùng hàm dựng sẵn len cho việc đó và sau đó áp dụng range lên kết quả độ dài.

Hãy nhớ rằng range luôn kỳ vọng một giá trị nguyên.

sequence = [1, 2, 8, 100, 200, 'datacamp', 'tutorial']
for i in range(len(sequence)):
    print (sequence[i])

# 1
# 2
# 8
# 100
# 200
# datacamp
# tutorial

Tuyệt! Nhưng tại sao cần dùng hàm len khi bạn có thể dùng trực tiếp for i in numbers? Câu trả lời rất đơn giản. Nếu bạn muốn sửa đổi hoặc làm việc với chỉ số của chuỗi, như thay đổi phần tử trong một danh sách hiện có, thì bạn sẽ cần range(len(sequence)).

sequence = [1, 2, 8, 100, 200, 'datacamp', 'tutorial']
for i in range(len(sequence)):
    element = sequence[i]
    if type(element) == int:
        sequence[i] = element + 4

print(sequence)

# [5, 6, 12, 104, 204, 'datacamp', 'tutorial']

Ngầu phải không? Bạn đã có thể sửa đổi các phần tử của danh sách dựa trên điều kiện if.

Bây giờ hãy xem cách in ra các số lẻ từ 1 đến 20. Để làm được điều này, bạn sẽ phải xác định ba thứ trong hàm range: điểm bắt đầu, điểm kết thúc và giá trị gia tăng (hoặc bước nhảy) mà vòng lặp sẽ tăng dần trong khoảng 1–20.

for i in range(1,20,2):
    print (i)

# 1
# 3
# 5
# 7
# 9
# 11
# 13
# 15
# 17
# 19

Vòng lặp For lồng nhau

for i in range(11):
    for j in range(i):
        print (i, end=' ')
    print()

# 1 
# 2 2 
# 3 3 3 
# 4 4 4 4 
# 5 5 5 5 5 
# 6 6 6 6 6 6 
# 7 7 7 7 7 7 7 
# 8 8 8 8 8 8 8 8 
# 9 9 9 9 9 9 9 9 9 
# 10 10 10 10 10 10 10 10 10 10 

Vòng lặp For để lặp qua các hàng và cột của dataframe

import pandas as pd

iris = pd.read_csv('https://raw.githubusercontent.com/mwaskom/seaborn-data/master/iris.csv')

iris.head()
  sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
len(iris)

# 150
for i in range(len(iris)):
    Class = iris.iloc[i,4]
    if Class == 'versicolor' and i < 70:
        print (Class)

# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor
# versicolor

Tiếp theo, hãy cộng thêm hai vào mọi hàng của các cột sepal_length,sepal_width, petal_length và petal_width.

columns = ['sepal_length','sepal_width','petal_length','petal_width']

for indices, row in iris.iterrows():
    for column in columns:
        iris.at[indices,column] = row[column] + 2

iris.head()
  sepal_length sepal_width petal_length petal_width species
0 7.1 5.5 3.4 2.2 setosa
1 6.9 5.0 3.4 2.2 setosa
2 6.7 5.2 3.3 2.2 setosa
3 6.6 5.1 3.5 2.2 setosa
4 7.0 5.6 3.4 2.2 setosa

Lặp qua một chuỗi với hàm Lambda

Hàm lambda của Python nhanh và mạnh hơn so với vòng lặp for cơ bản. Nó được dùng rộng rãi, đặc biệt khi làm việc với DataFrame. Bạn có thể xử lý dữ liệu nhờ hàm Lambda với rất ít mã. Tuy nhiên, đôi khi nó cũng khó hiểu.

x = [20, 30, 40, 50, 60]
y = []

for v in x :
    y += [v * 5]

print(y)

# [100, 150, 200, 250, 300]

Bây giờ, hãy thử cách này với hàm lambda và map.

Map nhận vào một hàm, chẳng hạn một hàm lambda, và một chuỗi x, rồi trả về một chuỗi mới.

x = [20, 30, 40, 50, 60]
y = map(lambda x: x * 5,x)

print(y)

# <map object at 0x4063cc8>

Nó trả về một hàm sinh (generator) và để lấy kết quả từ generator, bạn truyền đầu ra đó làm đối số cho list.

x = [20, 30, 40, 50, 60]
y = map(lambda x: x * 5,x)

print(list(y))

# [100, 150, 200, 250, 300]

Giờ hãy nhìn lại cả cách dùng vòng lặp for và kết hợp lambda/map(). Bạn sẽ thấy khác biệt nằm ở chỗ thêm map, lambda, và bỏ đi "for" và "in". Và bạn cũng đã có thể viết xong chỉ trong một dòng.

Kết luận

Chúc mừng bạn đã hoàn thành hướng dẫn cơ bản về vòng lặp For trong Python.

Vòng lặp For là xương sống của mọi ngôn ngữ lập trình, và với Python, dùng vòng lặp For hoàn toàn không khó để viết, hơn nữa còn khá giống viết một câu tiếng Anh.

Nếu bạn muốn tìm hiểu thêm về vòng lặp for trong Python, hãy học khóa Python Data Science Toolbox (Phần 2) của DataCamp.

Vui lòng đặt câu hỏi liên quan đến hướng dẫn này trong phần bình luận bên dưới.

Chủ đề
Python
Khoa học Dữ liệu
Phân tích dữ liệu

Các khóa học Python

Khóa học

Nhập môn Python

4 giờ
7.1M
Nắm vững phân tích dữ liệu với Python chỉ trong 4 giờ. Khóa học online này giúp bạn làm quen với giao diện Python và các thư viện phổ biến.
Xem chi tiếtRight Arrow
Bắt Đầu Khóa Học
Xem thêmRight Arrow
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem ThêmXem Thêm