Как повторить строку до длины другой строки, включая пробелы? - PullRequest
0 голосов
/ 10 октября 2019

Например,

string1 = "The earth is dying"`
string2:"trees" 

Я хочу, чтобы новая строка была: tre estre es trees

Я думал разбить первую строку на список и выполнить итерацию, но япроблемы с получением второго цикла for, который будет перебирать вторую строку и добавлять ее к первой, пока не будет достигнута нужная длина? Кроме того, у меня был бы некоторый тип оператора if, который проверял бы пробелы и добавлял их в окончательный список. А потом возможно присоединиться к финальному списку?

final_string = ''
string1_list = list(string1)
for i in range(string1_list):
    if string1_list[i] != " " #aka has a letter there
        for j in range(...) # how do I get a loop that would go through string2
        final_string += ... # and add into this string 

Ответы [ 2 ]

1 голос
/ 10 октября 2019

С itertools.cycle магия :

from itertools import cycle

s1 = "The earth is dying"
s2 = "trees"

gen = cycle(s2)
res = ''.join(c if c.isspace() else next(gen) for c in s1)
print(res)

Выход:

tre estre es trees
1 голос
/ 10 октября 2019
string1 = "The earth is dying"
string2 = "trees" 
result = ""
index = 0
for character in string1:
    if character == " ":
        result += " "
    else:
        result += string2[index%len(string2)]
        index+=1
print(result)

Выход: "tre estre es trees"

...