I don't get how tuple unpacking works (Python-2.x)
本问题已经有最佳答案,请猛点这里访问。
在我想知道tuple解包是如何工作的时候,我在几个线程上找到了这个答案作为切片的替代方法:
1 2 | >>>>def unpack(first,*rest): return first, rest |
其工作原理如下:
1 2 3 4 5 | >>>>first,rest=unpack(*(1,2,3)) >>>>first 1 >>>>rest (2,3) |
我不明白*是怎么工作的。参数"first"不应该给我的函数unpack?我认为*意味着论点是可选的。
谢谢你的帮助
函数定义中的
1 | unpack(*(1,2,3)) |
解包
1 | unpack(1,2,3) |
在你的例子中,
unpack的实现接受第一个参数和一个args故事,然后将其作为元组返回。
如果将参数作为变量传递,星型语法很有用:
1 2 | a = (1, 2, 3) first, rest = unpack(*a) |