【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)

参考文章:迭代 - 廖雪峰的官方网站

posted @ 2022-03-14 23:52  Exungsh💫  阅读(104)  评论(0编辑  收藏  举报