Python,字符串列表,行到列

Python,字符串列表,行到列,python,Python,所以,我的问题是,我想把我的列表行转换成列 例如: [“AAA”、“BBB”、“CCC”]=>[“ABC”、“ABC”、“ABC”] 找不到有效的方法。您可以简单地使用zip和解压缩: strs = ["AAA", "BBB", "CCC"] print zip(*strs) 输出将是元组,但: [('A','B','C'),('A','B','C'),('A','B','C')] 对于可以使用的字符串: strs = ["AAA", "BBB", "CCC"] print map(''.j

所以,我的问题是,我想把我的列表行转换成列 例如:

[“AAA”、“BBB”、“CCC”]=>[“ABC”、“ABC”、“ABC”]


找不到有效的方法。您可以简单地使用
zip
和解压缩:

strs = ["AAA", "BBB", "CCC"]
print zip(*strs)
输出将是元组,但:

[('A','B','C'),('A','B','C'),('A','B','C')]


对于可以使用的字符串:

strs = ["AAA", "BBB", "CCC"]
print map(''.join, zip(*strs))
# for python 3 use: list(map(''.join, zip(*strs))) # thanks @cesar
输出现在是字符串列表:

['ABC','ABC','ABC']


'.join
用于将元组映射到字符串。

因此,假设您在示例中处理的是字符串,但您可以扩展处理遇到的任何数据类型的算法,逻辑将保持不变

a = ["AAA", "BBB", "CCC"]
print ([''.join(i) for i in zip(*a)])
listRows = ["AAA", "BBB", "CCC"]
transList = []
tempString = ''
for s in range(0,len(listRows)):
    for i in range(0, len(listRows)):
        tempString = tempString + listRows[i][s]
    transList.append(tempString)
    tempString = ''
print(transList)

其中transList是您想要的最终列表

zip(*(列表(i)表示数组中的i))
@TomYates:为什么要转换为
列表
zip(*array)
是等效的,无需进行不必要的转换(尽管您需要将
zip
元组
s转换回
str
。如果您使用的是python3,map函数将返回一个map对象,因此如果您需要一个列表,您应该调用list(map('.join,zip(*strs)))哇@Reut Sharabani和Abhishek,我不知道zip和map,这些都很好!!如果我有足够的代表,我会投票给你们两个哈哈!!!