python -- 迭代

在学习for循环语句时,我们已经知道利用for......in 循环语句可以遍历list或tuple中的元素,我们称之为迭代。例如:

>>> L = ['A','B','C']
>>> for x in L:
	print(x)

	
A
B
C

其实不仅仅是list 和tuple可以迭代,dict也可迭代,例如:

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

	
a
b
c

另外,由于dict并不是按照顺序排序的,所以迭代出的顺序可能并不一致。默认情况下,迭代dict是dict其key,既上述循环语句等价于 for x in d.keys(), 如下:

>>> for x in d.keys():
	print(x)

	
a
b
c

如果想迭代出dict 中的value值,可使用以下循环语句,如:

>>> for x in d.values():
	print(x)

	
1
2
3

其实任何一个可迭代对象,均可迭代,例如字符串‘ABC’也可迭代,那么我们如何知道一个对象是否可迭代呢?我们可使用collections 中的 Iterable进行类型判断(isinstance为类型判断函数),例如:

>>> from collections import Iterable
>>> isinstance('ABC',Iterable)
True
>>> isinstance([1,2,3],Iterable)
True
>>> isinstance(123,Iterable)
False

另外,若我们想同时迭代出下标与元素,可使用enumerate把迭代对象变成一个索引-元素对,例如:

>>> L = ['A','B','C']
>>> for x,v in enumerate(L):
	print(x,v)

	
0 A
1 B
2 C

可以看到,在上面的for循环中,同时引用了两个变量,其实这在python中非常常见。例如:

>>> for x,y in [(1,1),(2,4),(3,9)]:
	print(x,y)

	
1 1
2 4
3 9

下面,我们利用迭代,查找list中元素的最大最小值,并通过tuple形式返回。

def findMinAndMax(L):
	if len(L) <= 1:
		print('测试失败')
	Max = L[0]
	Mix = L[0]
	for x in L:
		if x > Max:
			Max = x
		if x < Mix:
			Mix = x
	print(Max,Mix)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值