Python
中主要有三种循环语句:for
循环,while
循环,以及列表解析(list comprehension
)
一. for循环【for
循环至少会执行一次】
1) 基础for
循环:遍历序列或可迭代对象,对每个元素执行代码块。
for i in range(5):
print(i)
2) 使用enumerate()
函数:同时获取元素和其索引,在循环中同时使用元素和索引。
for i, value in enumerate(['a', 'b', 'c']):
print(i, value)
3) 使用zip()
函数:同时遍历多个可迭代对象,将多个可迭代对象的元素打包成一个个元组,然后依次处理这些元组。
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
for i, (num, char) in enumerate(zip(list1, list2)):
print(i, num, char)
4) 使用itertools
模块:遍历复杂的数据结构,如字典、集合等。
import itertools
for key, group in itertools.groupby(['a', 'b', 'a', 'c', 'a', 'b']):
print(key, list(group))
5) 使用生成器表达式:在循环中使用生成器表达式,可以减少内存占用。
squares = (x**2 for x in range(5))
for square in squares:
print(square)
二. while
循环【while
循环可能一次也不执行】
1)基础while循环:只要条件满足,就重复执行代码块。
i = 0
while i < 5:
print(i)
i += 1
2)使用break和continue:在循环中可以使用break和continue语句来控制循环的流程。
i = 0
while True:
print(i)
i += 1
if i >= 5:
break
3)使用else子句:在循环结束后执行特定的代码块。
i = 0
while i < 5:
print(i)
i += 1
else:
print('循环结束')
4)使用条件表达式:在循环中可以使用条件表达式来简化代码。
for i in range(5):
if i % 2 == 0:
print('偶数', i)
else:
print('奇数', i)
三. 列表解析:特殊的for循环写法
1) 基础列表解析循环:使用for循环和生成器表达式来创建一个列表。
squares = [x**2 for x in range(5)]
print(squares)
2) 使用条件表达式:在列表解析循环中使用条件表达式来过滤元素。
even_squares = [x**2 for x in range(5) if x % 2 == 0]
print(even_squares)
3) 使用lambda函数:在列表解析循环中使用lambda函数来对元素进行转换。
squares = [lambda x: x**2 for x in range(5)]
print([square(x) for square in squares for x in range(5)])
4) 使用enumerate()函数:在列表解析循环中使用enumerate()函数来同时获取元素和其索引。
squares = [(i, x**2) for i, x in enumerate(range(5))]
print(squares)
一日练,一日功,一日不练十日空
may the odds be ever in your favor ~