【发布时间】:2016-07-22 08:52:30
【问题描述】:
从字符串列表开始。每个字符串都有相同数量的字符,但这个数字不是预先确定的,不相关的字符串总数也不是。
这是一个例子:
data = ['ABC', 'EFG', 'IJK', 'MNO']
我想要的最终输出是这样的:
[('A', 'E', 'I', 'M'), ('B', 'F', 'J', 'N'), ('C', 'G', 'K', 'O')]
我想要的输出是我在以某种方式使用zip() 后所期望看到的。我的问题是我找不到将一个数组的每个元素压缩在一起的正确方法。
基本上,我试图从一组行中取出列。
到目前为止我所做的尝试:
-
将数据拆分成二维列表:
split_data = [list(row) for row in rows]
这给了我:
[['A', 'B', 'C'], ['E', 'F', 'G'], ['I', 'J', 'K'], ['M', 'N', 'O']]
-
尝试在上面使用
zip(),例如:zip(split_data)
我继续这样结束:
[(['A', 'B', 'C'],), (['E', 'F', 'G'],), (['I', 'J', 'K'],), (['M', 'N', 'O'],)]
显然,它压缩了每个元素,没有任何内容,导致它返回带有空白元组的原始数据。如何让zip() 将data 或split_data 的每个元素视为应压缩的列表?
我需要的是zip(data[0], data[1], data[2], ...)
【问题讨论】:
标签: python