# 迭代 Iteration
# 如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们称为迭代
# 1. 判断一个对象是可迭代
from collections import Iterable
print(isinstance('abc', Iterable)) # str是否可迭代 True
print(isinstance([1,2,3], Iterable)) # list是否可迭代 True
print(isinstance((1,2,3), Iterable)) # tuple是否可迭代 True
print(isinstance(123, Iterable)) # 整数是否可迭代 False
# 2. list
l = [10, 20, 30, 40, 50]
for v in l:
print(v)
for i, value in enumerate(l):
print(i, value)
l = [('a', 1), ('b', 2), ('c', 3)]
for x, y in l:
print(x, y)
# 3. dict
d = {'a': 1, 'b': 2, 'c': 3}
for key in d:
print(key, d[key])
for k, y in d.items():
print(k, v)
# 4. 字符串
for c in 'abcde':
print(c)
# 练习
# 迭代查找一个list中最小和最大值,并返回一个tuple:
l = []
def findMinAndMax(l):
if len(l) <= 0:
return None, None
min, max = l[0], l[0]
for v in l:
if v > max:
max = v
if v < min:
min = v
return min, max
# 测试
if findMinAndMax([]) != (None, None):
print('测试失败!')
elif findMinAndMax([7]) != (7, 7):
print('测试失败!')
elif findMinAndMax([7, 1]) != (1, 7):
print('测试失败!')
elif findMinAndMax([7, 1, 3, 9, 5]) != (1, 9):
print('测试失败!')
else:
print('测试成功!')