join () объединяет мою текущую строку, помещенную в следующую итеративную строку :(? - PullRequest
1 голос
/ 01 ноября 2019
def interleave(s1,s2):
    zipped_list=list(zip(s1,s2))
    print(zipped_list)
    empty_string=""
    for x in zipped_list:
        empty_string=empty_string.join(x)
        print(empty_string)
print(interleave("hi","bye"))

Я ожидал, что первая часть zip-строки ('h', 'b') будет объединена с пустой строкой, создающей empty_string="hb", и теперь для следующей итерации она станет empty_string="hbiy" с момента следующего zip-кортежаis ('i', 'y').

Но мой вывод был таким: ihby Где первая строка зажата между 2-й строкой.

Пожалуйста, помогите мне понять это и исправить мою ошибкуреализация. Спасибо

Ожидаемый результат: Сжать две входные строки и отобразить их в виде одной строки hbiy

1 Ответ

0 голосов
/ 01 ноября 2019

Ваш код хорош, ожидайте одну часть, где вы не поняли концепцию преобразования списка в строку! Ниже приведен код:

def interleave(s1,s2):
    zipped_list=list(zip(s1,s2))
    print(zipped_list)
    empty_string=""
    for x in zipped_list:
        empty_string+="".join(x)
        print(empty_string)

print (interleave("hi","bye"))

Этот "".join(x) преобразует ваши кортежи в строку на первой итерации ('h', 'b'), он выдаст hb, который хранится в empty_string иво второй итерации ('i', 'y') будет выведено iy, которое будет объединено в empty_string

...