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.
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 độ.
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 độ.
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 độ.
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:
- Chuyển các chuỗi đầu vào thành danh sách sản phẩm và giá
- Dùng
zip()để ghép sản phẩm với giá tương ứng - Dùng
reversed()để đảo ngược thứ tự các mục đã ghép - Dùng
enumerate()để thêm bộ đếm vào mỗi mục - 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ớiTấ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