for 语句

for 循环

是一个通用的序列迭代器,可以遍历任何有序的序列对象内的元素,可用于字符串,列表,元组以及其他内置可迭代对象

for <target> in <object>:
    <statements>
    if <test>: break
    if <test>: continue
else:
    <statements>

你可以把for循环看成是解包,而具体是如何解包的,这个就要看next方法,它是具体怎么实现的(针对自定义对象)。

对于内置对象的话,解包一般就是把一个大的单元,按照分割符进行划分,然后我们用i来储存一小块,然后进行循环处理

>>> for i in 'spam':            #比字符串小的单元就是字符了
... 	print(i,end=', ')
... 
s, p, a, m, 
>>> for i in ((1,2),(3,4)):   #嵌套元组,然后把元组看成一个整体,或则理解为按照内部分割符来划分
... 	print(i, end=', ')
... 
(1, 2), (3, 4),
>>> for i in (1,2):               #单个元组的话,按照内部分割符进行划分
... 	print(i, end=', ')
... 	
1, 2,

通过下面的例子,你会发现它实际上关键还是赋值的形式,与我们前面说学的区别就是它后面时一个序列,然后我们会以,为分隔符,一次用一段进行赋值。

>>> D={'a':1, 'b':2, 'c':3}
>>> for k in D:
... 	print(k, '=>', D[k])
... 
('a', '=>', 1)
('c', '=>', 3)
('b', '=>', 2)

>>> list(D.items())
[('a', 1), ('c', 3), ('b', 2)]
>>> for (k,v) in D.items():
... 	print(k, '=>', v)
... 
('a', '=>', 1)
('c', '=>', 3)
('b', '=>', 2)

>>> for ((a,b), c) in [((1,2),3),((4,5),6)]:
... 	print(a,b,c)
... 
(1, 2, 3)
(4, 5, 6)

Python 3的扩展赋值:关键也就是*的引入

>>> for (a,*b,c) in [(1,2,3,4),(5,6,7,8)]:
...	print(a,b,c)
...
1 [2,3] 4
5 [6,7] 8

>>> for all in [(1,2,3,4),(5,6,7,8)]:             #对比上面字典的时候,k为啥就只是一个值'a'?为啥现在为整个元组
...	a,b,c = all[0],all[1:3],all[3]
...	print(a,b,c)
...
1 (2,3) 4
5 (6,7) 8
佐证:for 循环的列表,会以逗号为界限,每次取出一组然后进行处理
>>> items = ["aaa", 111, (4,5),2.1]
>>> tests = [(4,5), 3.4]
>>> for k in tests:                                        #k 第一次值为(4,5)跟上面的all一样都是一次乘装一个分隔单元
... 	if k in items:
... 		print(k, "was found")
... 	else:
... 		print(k, "not found")
... 
((4, 5), 'was found')
(3.4, 'not found')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值