前言:以python经常就见见for i in range()和字符串之类的,但是最近有遇到了许多列表,所以打算记录整理一下
在 Python 中,for
循环可以用来遍历任何可迭代的对象。除了 range()
之外,还有很多其他的数据类型和结构可以用于 for
循环。
1.遍历字符串
text = "hello world"
for char in text:
print(char, end=' ')
# 输出: h e l l o w o r l d
2. 遍历列表
numbers = [1, 2, 3, 4, 5]
for num in numbers:
print(num, end=' ')
# 输出: 1 2 3 4 5
3.遍历元组
tup = (10, 20, 30, 40, 50)
for item in tup:
print(item, end=' ')
# 输出: 10 20 30 40 50
4.遍历字典
字典可以通过 keys()
, values()
, 或 items()
方法来遍历:
dict_data = {'a': 1, 'b': 2, 'c': 3} for key in dict_data.keys():print(key, end=' ')# 输出: a b cfor value in dict_data.values():print(value, end=' ')# 输出: 1 2 3for key, value in dict_data.items():print(f"{key}: {value}", end=' ')# 输出: a: 1 b: 2 c: 3
5.遍历集合
set_data = {1, 2, 3, 4, 5}
for element in set_data:
print(element, end=' ')
# 输出: 1 2 3 4 5 (顺序不定)
6.遍历文件
with open('example.txt', 'r') as file:
for line in file:
print(line, end='')
# 输出: 文件中的每一行内容
7.遍历自定义可迭代对象
class MyIterable:def __init__(self, data):self.data = datadef __iter__(self):return iter(self.data)my_iterable = MyIterable([1, 2, 3, 4, 5]) for item in my_iterable:print(item, end=' ') # 输出: 1 2 3 4 5
8.使用 enumerate
遍历序列并获取索引
words = ["apple", "banana", "cherry"] for index, word in enumerate(words):print(f"Index {index}: {word}") # 输出: # Index 0: apple # Index 1: banana # Index 2: cherry
9.使用zip同时遍历多个序列
names = ["Alice", "Bob", "Charlie"] ages = [25, 30, 35] for name, age in zip(names, ages):print(f"{name} is {age} years old.") # 输出: # Alice is 25 years old. # Bob is 30 years old. # Charlie is 35 years old.
10.使用 filter
和 map
遍历序列并处理数据
numbers = [1, 2, 3, 4, 5] even_numbers = filter(lambda x: x % 2 == 0, numbers) for num in even_numbers:print(num, end=' ') # 输出: 2 4squared_numbers = map(lambda x: x ** 2, numbers) for num in squared_numbers:print(num, end=' ') # 输出: 1 4 9 16 25
总结:for
循环可以用来遍历任何实现了 __iter__
方法的对象。Python 提供了许多内置类型,如字符串、列表、元组、字典、集合等,它们都可以直接用于 for
循环。此外,你还可以通过实现自定义类来创建自己的可迭代对象。这些特性使得 Python 的 for
循环非常强大和灵活。
补:键值对(集合),列表存元组,元组更像个体