将列表项分割成列并添加到新列表

2024-06-26 13:55:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表,其中每个元素都是长度相同的长字符串:

['KLGNVAGELQPFAPSED', 'MPDNVSFELQPPASJED', 'YYLNVSFEDQPPAPMED']

我要做的是生成一个新的列表,其中每个元素都是来自第一个列表相同位置的字符串。您也可以想象第一个列表与此相同:

^{pr2}$

所以我希望新列表在第一个列表中包含相应列中的元素,如下所示:

['KMY', 'LPY', 'GDL' 'NNN', ...]

我尝试的是:

for i in sub1:
   for j in i:
      pos.append(j)
   pos.append('\n')

但是我不能把每件事都分开。在


Tags: 字符串inpos元素列表for想象append
2条回答

您需要zip将列表中的元素组合在一起,然后将元组作为字符串连接起来:

new_list = [''.join(i) for i in zip(*old_list)] # KMY, LPY, GDL, ...

您可以使用^{}^{}

>>> l = ['KLGNVAGELQPFAPSED', 'MPDNVSFELQPPASJED', 'YYLNVSFEDQPPAPMED']
>>> map(''.join,zip(*l))
['KMY', 'LPY', 'GDL', 'NNN', 'VVV', 'ASS', 'GFF', 'EEE', 'LLD', 'QQQ', 'PPP', 'FPP', 'AAA', 'PSP', 'SJM', 'EEE', 'DDD']

请注意,map在不需要lambda函数的地方比列表comp快。在

^{pr2}$

你可以查看更多关于速度差的信息here

map may be microscopically faster in some cases (when you're NOT making a lambda for the purpose, but using the same function in map and a listcomp). List comprehensions may be faster in other cases and most (not all) pythonistas consider them more direct and clearer.

相关问题 更多 >