Menu
CoddyTech

Các hàm iterator tích hợp sẵn

Bài học 7 trên 13 trong khóa học Trình lặp trong Python của Coddy.

Python cung cấp một số hàm dựng sẵn có thể làm việc với trình vòng lặp, giúp bạn thao tác và xử lý dữ liệu có thể lặp dễ dàng hơn. Hãy cùng tìm hiểu ba hàm thường dùng: enumerate(), zip() và reversed().

1. enumerate()

Hàm enumerate() thêm một bộ đếm vào một đối tượng có thể lặp và trả về đối tượng enumerate. Hàm này đặc biệt hữu ích khi bạn cần cả chỉ số lẫn giá trị của các phần tử trong một đối tượng có thể lặp.

fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")

# Đầu ra:
# 0: apple
# 1: banana
# 2: cherry

2. zip()

Hàm zip() tạo một trình vòng lặp gồm các tuple, trong đó mỗi tuple chứa phần tử thứ i từ từng đối tượng đầu vào có thể lặp. Hàm này hữu ích khi kết hợp nhiều đối tượng có thể lặp.

names = ['Alice', 'Bob', 'Charlie']
ages = [25, 30, 35]
for name, age in zip(names, ages):
    print(f"{name} is {age} years old")

# Đầu ra:
# Alice is 25 years old
# Bob is 30 years old
# Charlie is 35 years old

3. reversed()

Hàm reversed() trả về một trình vòng lặp đảo ngược. Hàm này tạo một trình vòng lặp truy cập chuỗi đã cho theo thứ tự ngược lại.

numbers = [1, 2, 3, 4, 5]
for num in reversed(numbers):
    print(num)

# Đầu ra:
# 5
# 4
# 3
# 2
# 1

Các hàm dựng sẵn này cung cấp công cụ mạnh mẽ để làm việc với trình vòng lặp, cho phép bạn dễ dàng thêm bộ đếm, kết hợp các đối tượng có thể lặp hoặc đảo ngược chuỗi. Chúng có thể giúp đơn giản hóa đáng kể code và làm code dễ đọc hơn khi xử lý các cấu trúc dữ liệu có thể lặp.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

challenge icon

Thử thách

Dễ

Tạo một chương trình xử lý danh sách sản phẩm và giá của chúng, kết hợp các hàm (function) enumerate(), zip() và reversed() để tạo đầu ra theo định dạng.

Bạn được cung cấp các đầu vào sau:

  • Một chuỗi tên sản phẩm, được phân tách bằng dấu phẩy
  • Một chuỗi giá tương ứng, được phân tách bằng dấu phẩy

Chương trình của bạn cần:

  1. Chuyển các chuỗi đầu vào thành danh sách sản phẩm và giá
  2. Dùng zip() để ghép sản phẩm với giá tương ứng
  3. Dùng reversed() để đảo ngược thứ tự các mục đã ghép
  4. Dùng enumerate() để thêm bộ đếm vào mỗi mục
  5. In từng mục theo định dạng: "#{counter}. {product}: ${price}"

In từng mục đã định dạng trên một dòng mới.

Tự làm thử

# Đọc đầu vào
products = input().split(',')
prices = input().split(',')

# Chuyển prices thành các số thực
prices = [float(price) for price in prices]

# TODO: Viết code của bạn bên dưới
# Gợi ý: Dùng zip(), reversed() và enumerate() để xử lý dữ liệu

# In ra đầu ra đã định dạng
# Nhớ in mỗi mục trên một dòng mới

Tất cả bài học trong Trình lặp trong Python

Tự luyện tập: Trình biên dịch Python online