CodeGym /Khóa học Java /Python SELF VI /Vòng lặp qua danh sách

Vòng lặp qua danh sách

Python SELF VI
Mức độ , Bài học
Có sẵn

6.1 Vòng lặp for

Trong Python, vòng lặp qua các phần tử của danh sách thường được thực hiện thông qua vòng lặp for. Đây là một trong những cách tiếp cận thường dùng nhất để lặp qua danh sách, cho phép thực hiện đoạn mã cho mỗi phần tử trong danh sách.

Cơ bản về vòng lặp for

Vòng lặp for trong Python lặp qua từng phần tử của danh sách, tạm thời gán giá trị hiện tại của phần tử vào biến được chỉ định sau từ khóa for. Ví dụ:


fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

Lặp qua danh sách theo thứ tự ngược có thể thực hiện bằng cách dùng cắt lát:


fruits = ["apple", "banana", "cherry"]
for fruit in fruits[::-1]:
    print(fruit)

6.2 Vòng lặp for với chỉ số

Ngoài việc lặp qua danh sách bằng for cổ điển, bạn có thể lặp qua danh sách bằng vòng lặp for kết hợp với hàm range(). Điều này không chỉ cho phép bạn thao tác với chính các phần tử mà còn cho phép làm việc với vị trí của chúng, điều này cần thiết khi thực hiện các phép biến đổi dữ liệu phức tạp hơn.

Cơ bản về lặp có chỉ số

Để lặp qua danh sách với quyền truy cập vào chỉ số của từng phần tử, bạn có thể sử dụng cách tiếp cận sau:


my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
    print(f'Index: {i}, Element: {my_list[i]}')

Lợi ích khi sử dụng chỉ số

Sử dụng chỉ số trong vòng lặp cho phép không chỉ truy cập vào mỗi phần tử, mà còn thay đổi các phần tử của danh sách ngay tại chỗ. Điều này đặc biệt hữu ích, khi bạn cần sửa đổi danh sách trong quá trình lặp.

Ví dụ:


my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
    my_list[i] = my_list[i] * 2

Ví dụ về các thao tác phức tạp

Với chỉ số, bạn dễ dàng thực hiện các thuật toán yêu cầu truy cập đồng thời vào nhiều phần tử trong danh sách, chẳng hạn như để so sánh phần tử hiện tại với phần tử trước hoặc sau đó:

Ví dụ:


my_list = [3, 5, 2, 9, 4]
for i in range(1, len(my_list)):
    if my_list[i] > my_list[i - 1]:
        print(f'{my_list[i]} is greater than {my_list[i - 1]}')

6.3 Sử dụng hàm enumerate()

Trong Python, hàm enumerate() cung cấp cách tiện lợi để lặp qua các phần tử của danh sách với quyền truy cập đồng thời vào chỉ số của chúng. Điều này đặc biệt hữu ích khi cần xử lý cả chỉ số và giá trị của phần tử trong danh sách trong khi vòng lặp thực thi.

Cơ bản về hàm enumerate()

Hàm enumerate() bọc danh sách trong một đối tượng đặc biệt và trả về một iterator tạo ra các tuples (cặp giá trị), bao gồm chỉ số và giá trị của phần tử:


my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
    print(f'Index: {index}, Element: {element}')

Bây giờ bạn có không chỉ phần tử mà còn có cả chỉ số của nó.

Lợi ích của enumerate()

Sử dụng enumerate() làm cho mã dễ đọc hơn và tránh được việc phải quản lý thủ công chỉ số với range(len(...)). Điều này đơn giản hóa việc thao tác với các phần tử của danh sách, như thay đổi, truy cập phần tử và thực hiện các kiểm tra điều kiện.

Ví dụ sử dụng

enumerate() rất phù hợp cho các tác vụ yêu cầu thay đổi đồng thời các phần tử của danh sách hoặc so sánh các phần tử với chỉ số của chúng:


my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
    if index % 2 == 0:
        print(f'Element {element} at even index {index}')

6.4 Vòng lặp while

Chúng ta đã thảo luận về for, bây giờ hãy nói về vòng lặp while. Vòng lặp này cũng có thể hữu ích khi làm việc với các phần tử của danh sách.

Nhắc lại, vòng lặp while bắt đầu thực thi bằng cách kiểm tra điều kiện. Nếu điều kiện là đúng, thân của vòng lặp được thực hiện, sau đó điều kiện được kiểm tra lại. Quá trình được lặp lại cho đến khi điều kiện trở thành sai.

Ví dụ về lặp qua danh sách

Giả sử bạn có một danh sách các số và bạn muốn lặp qua nó cho đến khi gặp một giá trị nhất định:


numbers = [1, 2, 3, 4, 5, -1, 6]
i = 0
while i < len(numbers) and numbers[i] != -1:
    print(numbers[i])
    i += 1

Không khác nhiều so với vòng lặp for, đúng không? Nhưng có những trường hợp mà chúng ta không cần sử dụng chỉ số để làm việc với các phần tử của danh sách. Chẳng hạn, nếu danh sách chứa một số nhiệm vụ, cần thực hiện từng cái một từ danh sách, thực hiện và xóa khỏi danh sách.

Đoạn mã này có thể được viết sơ đồ hóa như vậy:


tasks = [1, 2, 3, 4, 5, -1, 6]
while len(tasks) > 0:
    task = tasks.pop()
    print(task)
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION