gpt4 book ai didi

python - 将一个列表的每个元素压缩在一起

转载 作者:太空狗 更新时间:2023-10-30 00:54:39 25 4
gpt4 key购买 nike

从字符串列表开始。每个字符串将具有相同数量的字符,但该数量不是预先确定的,无关的字符串总数也不是预先确定的。

这是一个例子:

data = ['ABC', 'EFG', 'IJK', 'MNO']

我想要的最终输出是这样的:

[('A', 'E', 'I', 'M'), ('B', 'F', 'J', 'N'), ('C', 'G', 'K', 'O')]

我期望的输出是我在以某种方式使用 zip() 后期望看到的。我的问题是我找不到将一个数组的每个元素压缩在一起的正确方法。

本质上,我试图从一组行中提取列。

到目前为止我尝试了什么:

  1. 将数据拆分为二维列表:

    split_data = [list(row) for row in rows]

这给了我:

[['A', 'B', 'C'], ['E', 'F', 'G'], ['I', 'J', 'K'], ['M', 'N', 'O']]
  1. 尝试在上面使用 zip() 类似的东西:

    zip(split_data)

我继续以这个结束:

[(['A', 'B', 'C'],), (['E', 'F', 'G'],), (['I', 'J', 'K'],), (['M', 'N', 'O'],)]

显然,它压缩每个元素时什么都没有,导致它返回带有空白的元组的原始数据。如何让 zip()datasplit_data 的每个元素视为应压缩的列表?

我需要的是zip(data[0], data[1], data[2], ...)

最佳答案

只需解压数据:

>>> data = ['ABC', 'EFG', 'IJK', 'MNO']
>>> zip(*data)
[('A', 'E', 'I', 'M'), ('B', 'F', 'J', 'N'), ('C', 'G', 'K', 'O')]

至于解释,我无法比@Martijn 在这里解释得更好更简洁:

关于python - 将一个列表的每个元素压缩在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36375126/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com