我有一个100个单词的列表,每个单词正好有10个字符。我想换位(如果你愿意的话)列出10个单词,每个单词有100个字符。这些词没有任何意义,但我正在寻找这样一个功能。我可以使用2个循环,但我想知道是否有一个更简单的方法,如MATLAB的转置。你知道吗
下面是一个MATLAB示例:
>> words =
'KWDSEHQGUI'
'RSNKYDVCME'
'MBUSWHEZRI'
'CVNHWGOQUL'
'RNTCQWHJKA'
>> wordsT = words'
'KRMCR'
'WSBVN'
'DNUNT'
'SKSHC'
'EYWWQ'
'HDHGW'
'QVEOH'
'GCZQJ'
'UMRUK'
'IEILA'
已解决(感谢下面的多个答案)
trans = list(zip(*words))
#To join all the tuples to a string
tWords = []
for items in trans:
tWords.append(''.join(items))
您可以使用join在单个循环中完成。示例代码示例(这里w\u list是您的源代码列表):
上面的代码是根据具体情况,我们要加入10个单词的列表和列表包含100个单词。您可以根据需要进行修改,但主要用途是join。你知道吗
对@wwii的评论稍加修改:
trans = list(''.join(w) for w in zip(*words))
正如@wwii在评论中所建议的,
trans = list(zip(*words))
非常接近,但是得到的是元组而不是字符串。你知道吗这样做有效:
我发现我更喜欢@yabishek的答案,但不知道哪种解决方案会更快。你知道吗
结果:
所以,通常情况下,
map
比理解快,但不会快很多。如果你只做了几次,我会同意他们的回答,如果你需要做很多,或者大量的数据,我会同意我的。你知道吗相关问题 更多 >
编程相关推荐