📜  python 转置列表 - Python (1)

📅  最后修改于: 2023-12-03 15:34:13.835000             🧑  作者: Mango

Python 转置列表

在 Python 中,我们可以使用内置函数 zip() 来转置一个列表。简单来说,就是将二维数组的行与列互换。下面是一个简单的例子:

matrix = [
  [1, 2],
  [3, 4],
  [5, 6]
]

transpose = list(map(list, zip(*matrix)))

print(transpose)
# 输出 [[1, 3, 5], [2, 4, 6]]

运用了很多 Python 中常用的函数,这里我们逐一解释一下:

  • zip() 函数:这个函数是将多个可迭代对象中的对应元素打包成一个元组,在返回迭代器对象之前将这些元组打包成一个列表。即将每个列表的第 i 个元素组成一个元组,最后返回一个由这些元组组成的列表。例如:

    list1 = [1, 2, 3]
    list2 = [4, 5, 6]
    
    zipped = zip(list1, list2)
    
    print(list(zipped))
    # 输出 [(1, 4), (2, 5), (3, 6)]
    
  • map() 函数:将一个函数应用于一个可迭代对象中的每个元素,返回一个列表。例如:

    def square(x):
        return x * x
        
    list1 = [1, 2, 3, 4]
    
    squares = list(map(square, list1))
    
    print(squares)
    # 输出 [1, 4, 9, 16]
    
  • * 运算符:在 Python 中,* 运算符可以解包一个列表或元组,例如:

    list1 = [1, 2, 3]
    
    print(*list1)
    # 输出 1 2 3
    

    在这个例子中,* 运算符将列表解包成一个个的参数,然后作为参数传递给 zip() 函数。

最后,使用 list() 函数将迭代器转换成列表,从而得到转置后的列表。

如果你想进一步了解如何在 Python 中操作列表和其他数据类型,请查看 Python 官方文档。