python args[0_Python初學者args問題,請教教我?

最近開始自學python 關於args不是很理解

教科書上的碼,作用是找出交集,流程有些不理解

def intersect(*a):

res = []

for x in a[0]:

print('up ',x)

for y in a[1:]:

print('down',y)

if x not in y :

break

else:

res.append(x)

print('res ',res)

return res

L = [1,2,4,6,8,16,32,64];L2 = [2,8,16,32,64,128];L3 = [4,6,8,16]

intersect(L,L2,L3)

裡邊的print我自己加的,為了了解執行流程

執行完是這樣:

up 1

down [2, 8, 16, 32, 64, 128]

up 2

down [2, 8, 16, 32, 64, 128]

down [4, 6, 8, 16]

up 4

down [2, 8, 16, 32, 64, 128]

up 6

down [2, 8, 16, 32, 64, 128]

up 8

down [2, 8, 16, 32, 64, 128]

down [4, 6, 8, 16]

res [8]

up 16

down [2, 8, 16, 32, 64, 128]

down [4, 6, 8, 16]

res [8, 16]

up 32

down [2, 8, 16, 32, 64, 128]

down [4, 6, 8, 16]

up 64

down [2, 8, 16, 32, 64, 128]

down [4, 6, 8, 16]

[8, 16]

不明白為何像第一輪的迴圈以1去檢查[2, 8, 16, 32, 64, 128]後就直接回到頂層取2,不是該先把內層迴圈run完繼續檢查[4, 6, 8, 16]嗎? 而後續的檢查也是如此,a[1]沒找著就直接回a[0]取新數字了,請問我該如何理解?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值