解压缩python列表时*做啥? [复制]
Posted
技术标签:
【中文标题】解压缩python列表时*做啥? [复制]【英文标题】:what does * do when unzipping a python list? [duplicate]解压缩python列表时*做什么? [复制] 【发布时间】:2016-01-05 08:17:09 【问题描述】:>>> x = [1,2,3]
>>> y = [4,5,6]
>>> zipped = zip(x,y)
>>> zipped
[(1, 4), (2, 5), (3, 6)]
>>> *zipped
File "<stdin>", line 1
*zipped
^
SyntaxError: invalid syntax
>>> zip(*zipped)
[(1, 2, 3), (4, 5, 6)]
我对压缩前的 * 感到困惑。我知道 zip(*zipped) 用于反转矩阵,但是 * 在那里做什么?是python中的特殊运算符吗?
【问题讨论】:
【参考方案1】:有了这个:
zip(*zipped)
你告诉python和这个一样:
zip(zipped[0],zipped[1],zipped[2])
这个基本的例子。
那个操作符到底是做什么的
当用作函数的参数时,它会在作为参数传递之前获取参数的元素并扩展它。
例如:
power = [2,3]
math.pow(*power)
会给你 2³ = 8 的值。
http://ideone.com/D0R9FB
【讨论】:
以上是关于解压缩python列表时*做啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章