python元祖迭代_python *式语法在迭代一个元组序列时的逻辑?
九州編程
我猜想你的困惑可能是為什么:bar hello結果沒有出現?因為你的records第二項寫錯了: ('batr', 'hello') 應該是 ('bar', 'hello'),In [1]: records =[? ?...: ? ? ('foo', 1, 2),? ?...: ? ? ('bar', 'hello'),? ?...: ? ? ('foo', 3 ,4),? ?...: ]? ?...: def do_foo(x,y):? ?...: ? ? print('foo', x ,y)? ?...:?? ?...: def do_bar(s):? ?...: ? ? print('bar', s)? ?...:?? ?...: for tag, *args in records:? ?...: ? ? if tag == 'foo':? ?...: ? ? ? ? do_foo(*args)? ?...: ? ? elif tag == 'bar':? ?...: ? ? ? ? do_bar(*args)? ?...: ? ? ? ??foo 1 2bar hellofoo 3 4簡單的解釋就是:*arg分解tag后面的幾個元素,比方說列表record中的三個元素分別是:('foo', 1, 2) ('bar', 'hello') ('foo', 3 ,4)tag為'foo',后面的元素(1,2)為 *args,因此打印 foo 1 2tag為'bar',后面的元素'hello'為*args,因此打印 bar hellotag為'foo',后面的元素(3,4)為*args,因此打印 foo 3 4
總結
以上是生活随笔為你收集整理的python元祖迭代_python *式语法在迭代一个元组序列时的逻辑?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 去重_php求两数组交集的四种方
- 下一篇: python list分成多个_Pyth