【问题标题】: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中的特殊运算符吗?

【问题讨论】:

    标签: python


    【解决方案1】:

    有了这个:

    zip(*zipped)
    

    你告诉python和这个一样:

    zip(zipped[0],zipped[1],zipped[2])
    

    这个基本的例子。

    那个操作符到底是做什么的

    当用作函数的参数时,它会在作为参数传递之前获取参数的元素并扩展它。

    例如:

    power = [2,3]
    math.pow(*power)
    

    会给你 2³ = 8 的值。

    http://ideone.com/D0R9FB

    【讨论】:

      猜你喜欢
      • 2015-10-16
      • 2019-12-03
      • 1970-01-01
      • 2019-01-12
      • 1970-01-01
      • 2012-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多