создать новую строку, добавляя символы меньших строк одну за другой - PullRequest
1 голос
/ 18 ноября 2011

У вас есть строки «Ааааа» "BBBBB" "CCCCC" "DDDDD"

Теперь вы хотите сгенерировать строку:

"abcdabcdabcdabcdabcd"

Как бы это был самый быстрый способ сделать это?

PS. Это очень упрощенный пример. Мне действительно нужно сгенерировать новую строку из существующих меньших строк.

Ответы [ 3 ]

3 голосов
/ 18 ноября 2011

Если строки одинаковой длины, вы можете использовать zip:

result = ''.join(map(''.join, zip(*strings)))
1 голос
/ 18 ноября 2011

Используйте izip_longest из библиотеки itertools и сгладьте рецепт из той же библиотеки.

from itertools import izip_longest, chain
def flatten(listOfLists):
    "Flatten one level of nesting"
    return chain.from_iterable(listOfLists)

result = ''.join(flatten(izip_longest("aaaaa", "bbbbb", "ccc", "dddd", fillvalue='')))
0 голосов
/ 18 ноября 2011
string1 = "aaaaaaaaa"
string2 = "bbbbbbbbb"
string3 = "ccccccccc"
string4 = "ddddddddd"
new_string = ""
for i in range(0,len(string1)):
    new_string = new_string+string1[i]+string2[i]+string3[i]+string4[i]
print (new_string)

Результаты:

abcdabcdabcdabcdabcdabcdabcdabcdabcd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...