Python:连接字符串列表的所有第一个元素,字符串列表的第二个元素等

0 python

输入是嵌套的字符串列表,输出应该是连接输入字符串的第一个元素、所有输入字符串的第二个元素的字符串列表,依此类推。

inputList = [["o" , "t" ,"t", "", "",""],["n", "w", "hr", "", ""],["e", "o", "e", ""],["", "", "e", ""]]
outputList = ['one', 'two', 'three', '', '']
Run Code Online (Sandbox Code Playgroud)

我就是这么强行逼出来的。

listStr = ["", "", "", "", ""]
for i in range(0,len(IN)):
    for j in range(0,len(IN)):
        listStr[i] += IN[j][i]
Run Code Online (Sandbox Code Playgroud)

有什么更好的时间复杂度和空间复杂度来获得所需输出而不是暴力破解的更好方法?

小智 5

至少一种更简洁的方法是转置 inputList:

list(zip(*inputList))

[('o', 'n', 'e', ''),
 ('t', 'w', 'o', ''),
 ('t', 'hr', 'e', 'e'),
 ('', '', '', '')]
Run Code Online (Sandbox Code Playgroud)

并将它们连接成一个单词:

[''.join(word) for word in zip(*inputList)]

['one', 'two', 'three', '']
Run Code Online (Sandbox Code Playgroud)