【Python】迭代
Python的for
循环抽象程度要高于C的for
循环
只要是可迭代对象均可通过for ... in ...
来实现迭代
对list
for value in list:
...
同理对tuple
在C语言中for一次只能迭代一个对象,python则无此限制
如对dict
for key, value in d.items():
一些拓展:
在遍历list时,如果想同时迭代list的下标,Python内置的enumerate
函数可以把一个list
变成索引-元素对,这样就可以在for
循环中同时迭代索引和元素本身:
>>> for i, value in enumerate(['A', 'B', 'C']):
... print(i, value)
...
0 A
1 B
2 C
如何判断一个对象是可迭代对象呢?方法是通过collections.abc
模块的Iterable
类型判断:
>>> from collections.abc import Iterable
>>> isinstance('abc', Iterable) # str是否可迭代
True
>>> isinstance([1,2,3], Iterable) # list是否可迭代
True
>>> isinstance(123, Iterable) # 整数是否可迭代
False
使用迭代查找一个list中最小和最大值,并返回一个tuple:
def find(L):
max = L[0]
min = L[0]
for item in L:
if item > max:
max = item
elif item < min:
min = item
return (max, min)
n = input()
n = int(n)
L = []
for i in range(n):
num = input()
num = int(num)
L.append(num)
result = find(L)
print(result)
参考文章:迭代 - 廖雪峰的官方网站