从零开始学Python-Day20-迭代Iteration

Python零基础 木人张 3年前 (2020-03-24) 793次浏览 0个评论 扫描二维码

通过for循环遍历整个list或tuple,这种遍历称为迭代。
Python中除了list和tuple这种有下标索引的可以作为迭代对象,想dict这类无下标,但是是可迭代的对象,都可以迭代:

>>> d = {'a':1,'b':2,'c':3}
>>> for k in d:
	print(k)

a
b
c
>>> for v in d.values():
	print(v)

1
2
3
>>> for k,v in d.items():
	print(k,v)

a 1
b 2
c 3

dict默认迭代的是key值,如果要迭代value,可以用for v in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()

>>> for ch in 'ABC':
...     print(ch)
...
A
B
C

上面的例子里可以看出,字符串也是可迭代对象,如何判断对象是否是可迭代对象呢?可以通过collections模块的Iterable类型判断:

>>> from collections import Iterable
>>> isinstance('abcd',Iterable)
True
>>> isinstance('123',Iterable)
True
>>> isinstance((1,2,3),Iterable)
True
>>> isinstance(123,Iterable)
False
>>> isinstance('木人张的自留地',Iterable)
True

可以看出字符串、tuple都是可迭代对象,但是整数数值不属于可迭代对象。

练习:迭代查找一个list中最大和最小值,并返回成tuple

>>> def findMinAndMax(L):
	if L == []:
		return(None,None)
	else:
		y = L[0]
		z = L[0]
		for x in L:
			if x>=y:
				y=x
			else:
				pass
		for s in L:
			if s<=z:
				z=s
			else:
				pass
		return(z,y)

>>> findMinAndMax([])
(None, None)
>>> findMinAndMax([8])
(8, 8)
>>> findMinAndMax([1,5,3,8,9,10,2])
(1, 10)

木人张,版权所有丨如未注明 , 均为原创,禁止转载。
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址