2014-12-10 3 views
-1

Я ищу способ дублирования каждого символа в строке, сохраняя их порядок. Это своего рода формат мне нужно:Дублировать каждый символ в строке

>>> dup = "abc" 
>>> dup1 = MyFunction(dup) # I don't know what code should go here! 
>>> dup1 
"aabbcc" 

Я знаю, как сделать это для элементов в списке, но я не могу понять, как сделать строки работают одинаково. Какой код можно использовать для получения этого результата?

ответ

1

я бы, вероятно, сделать это таким образом:

>>> dup = "abc" 
>>> dup1 = str() # a new, empty string. 
>>> for char in dup: 
... dup1 += char + char # strings concatenate using + and += 

>>> dup1 # the duplicant string 
'aabbcc' 
>>> dup # the original is preserved 
'abc' 

Вы можете использовать dup1 += char два раза подряд вместо dup1 += char + char в for блоке, если вы предпочитаете, или, возможно, если вы хотите, чтобы изменить строку между дублирования.

dup1 = "" может быть более Pythonic альтернативой dup1 = str(), но я не уверен. Наверное, больше вопрос стиля. В любом случае создается пустая строка.

+0

Если вы хотите сделать это в одной строке, вы можете использовать '. '.join()', как предположил fredtantini, используя вместо этого итератор: 'dup1 =' '.join (char + char для char в dup) '. – Augusta

2

Вы можете использовать свой код для списков со строками с:

dup1=''.join(yourDuplicateFunction(list(dup))) 

Он преобразует строку в списке, вы будете применять дублированные функции в этом списке, и присоединиться к нему, без сепаратора.

Смежные вопросы