解压缩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列表时*做啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将元组列表解压缩到单个列表中? [复制]

如何在 Python 中解压缩 RDD 中每个项目的值(列表)?

Python 装饰器是做啥的,它的代码在哪里? [复制]

使用 Python 解压缩文件并返回它创建的所有目录

属性 python 内置做啥? [复制]

将十六进制值的列表/字符串解压缩为整数