在下面的代码中,zip(* res)在Python中意味着什么?

这个问题在这里已经有了答案:

  • Star运算符是什么意思? [重复] 5个答案

  • 在python中,*是'splat'操作符。 它用于将列表解压缩为参数。 例如: foo(*[1, 2, 3])foo(1, 2, 3)

    zip()函数需要n迭代,并返回y元组,其中y是所提供的所有迭代的长度中最小的。 第y个元组将包含所有提供的迭代的第y个元素。

    例如:

    zip(['a', 'b', 'c'], [1, 2, 3])
    

    会屈服

    ('a', 1) ('b', 2) ('c', 3)
    

    对于您提供的示例中的res等嵌套列表,调用zip(*res)将执行如下操作:

    res = [['a', 'b', 'c'], [1, 2, 3]]
    zip(*res)
    # this is the same as calling zip(['a', 'b', 'c'], [1, 2, 3])
    ('a', 1)
    ('b', 2)
    ('c', 3)
    

    zip(*res)转置矩阵(二维数组/列表)。 *运算符“解包”一个矩阵和zip交错的迭代或行,并按列逐行zip行:

    > x = [('a', 'b', 'c'), (1, 2, 3)]
    > zip(*x)
    [('a', 1), ('b', 2), ('c', 3)]
    

    设想镜像对角线上的矩阵。

    链接地址: http://www.djcxy.com/p/53639.html

    上一篇: what does zip(*res) mean in python in the following code?

    下一篇: In Python what type of object does *zip(list1, list2) return?