因为我们要使用的数值范围可能会经常变化,Python 提供了一个range()内建函数来生成这种列表。它正好
能满足我们的需要, 接受一个数值范围, 生成一个列表:
for eachNum in range(3):
print eachNum
对字符串来说, 很容易迭代每一个字符,range()函数经常和len()函数一起用于字符串索引。 在这里我们要显示每一个元素 及其索引值:
foo = 'abc'
for i in range(len(foo)):
print foo[i], '(%d)' % i
不过, 这些循环有一个约束, 你要么循环索引, 要么循环元素。这导致了enumerate()
函数的推出(Python2.3 新增)。 它同时做到了这两点:
for i, ch in enumerate(foo):
print ch, '(%d)' % i
列表解析:
表示你可以在一行中使用一个for 循环将所有值放到一个列表当中:
squared = [x ** 2 for x in range(4)]
for i in squared:
print i
列表解析甚至能做更复杂的事情, 比如挑选出符合要求的值放入列表:
sqdEvens = [x ** 2 for x in range(8) if not x % 2]
for i in sqdEvens:
print i