2015-05-17 3 views
0

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

У меня есть текстовый пример сильфона
начала предварительного нарезанный текст:
АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ
АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ
Конца предварительно нарезанного текста

Я нарежьте текст с [начать: остановка: шаг] и в этом примере я нарезанный его в 2-х частяхКак вы можете объединить части фрагментированной строки?

s = """abcdefghijklmnopqrstuvwxyz 
abcdefghijklmnopqrstuvwxyz""" 
#part 1 result 
print (s[0::2]) 
#part 2 result 
print (s[1::2]) 


Как я могу присоединиться к результатам part1 и part2 поэтому я получит исходный текст с предварительно нарезанным текстом.
Оригинальный предварительно нарезанный текст.
АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ
АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ

Спасибо всем за ваши усилия.


Основано на четвертом ответе Стефана.

>>> s, t = """acegikmoqsuwy 
... bdfhjlnprtvxz""", """bdfhjlnprtvxzacegikmoqsuwy""" 
>>> tmp = list(s + t) 
>>> tmp[0::2], tmp[1::2] = s, t 
>>> print(''.join(tmp)) 
abcdefghijklmnopqrstuvwxyz 
abcdefghijklmnopqrstuvwxyz 

используя его порезать сообщение PGP в 3

s = """hQEMA1H5MO53CAz0AQf+PoxwzD+9TYqGg61W/ng8Umi+mFPneIC4+JlMu2H4mCsx 
AzO5APdXJJHRFjSpS01ZeKQQ05xEeHCnjgmWEFCWUVXW77kd/YI9Q01QIyoo8J6y 
b9Wu4uFPQiCy2+Fr4SIKtrpOrsbrqG54BPFY66NeQ9NbG217QCbcaUlXHpmokiIc 
6T94uTkLRo+Lv2QWzMBfyfyWbuU2lwD+7dD45oRB7cXInM9jQDHL8FKcFutTxPXh 
8w/8eCZtPOQwCAX+vnRFT4DtgDotRdagDEswtuPTd8YbpemIa/C01ylExgIVvtLP 
JwimeWx9d+nJgL2nx2emaYzN0vNQStOQceWtYxbbJdJJAXniDi7+HApeHyN2JcKu 
LFjdTQFaQB0JGdloIXSJBqhOCMXBfd7mJ5c9sY6abE4bfP9/znbqT35y3GVU9RyX 
NVKOujgxzi0/xQ== 
=DvXG""" 
print (s[0::3]) 
print (s[1::3]) 
print (s[2::3]) 

и присоединения к нему

>>> s, t, d = """hMHOC0foz9q6/8iFe4l2mxzAXHjSZQ5enmFUWkYQQoJ 
WuQyFStObGBYN9G7bUHoI64kovWBfb2Dd5BXMQLKuxhwetQAvFDDRgsudbm/1EIt 
iWdJ22aNNtctbdAi7AH2KLdFBGoSqCB75sa4Pzq5G9XVux0Q 
v""", """QA55AA+xDTG1nU+PI+MHC 
OPJRS0eQxHjWCV7dI0Io6buFi2rIrrr5P6eN2QclpkcTuL+2zfyul+Do7I9D8ctP 
/CPwXnTtodDwP8pICyxVLJmx+gneY0QOeYbJXD+pyJuFTa0dIJhMfmcYbb9nTyVR 
Kjz/==X""", """E1M3zQPw+YgWgmmnCJu4sA5dJFp1K0ECgEWX7/91y8y94PC+4Kpsq4F6Qb1CaXmi 
9TRLQMyWUw74RcnjHFFTX88ZOC+R4gtaEtTYea0lgvPwe9nLxmzvSQWxJJniHeNc 
jQQJlXBOXdJ96Ef/b33UyNOgix=DG""" 
tmp = list(s + t + d) 
tmp[0::3], tmp[1::3], tmp[2::3] = s, t, d 
print(''.join(tmp)) 


вы получите сообщение Оригинал PGP
hQEMA1H5MO53CAz0AQf + PoxwzD + 9TYqGg61W/ng8Umi + mFPneIC4 + JlMu2H4mCsx
AzO5APdXJJHRFjSpS01ZeKQQ05xEeHCnjgmWEFCWUVXW77kd/YI9Q0 1QIyoo8J6y
b9Wu4uFPQiCy2 + Fr4SIKtrpOrsbrqG54BPFY66NeQ9NbG217QCbcaUlXHpmokiIc
6T94uTkLRo + Lv2QWzMBfyfyWbuU2lwD + 7dD45oRB7cXInM9jQDHL8FKcFutTxPXh
8w/8eCZtPOQwCAX + vnRFT4DtgDotRdagDEswtuPTd8YbpemIa/C01ylExgIVvtLP
JwimeWx9d + nJgL2nx2emaYzN0vNQStOQceWtYxbbJdJJAXniDi7 + HApeHyN2JcKu
LFjdTQFaQB0JGdloIXSJBqhOCMXBfd7mJ5c9sY6abE4bfP9/znbqT35y3GVU9RyX
NVKOujgxzi0/хо ==
= DvXG

+0

Не могли бы вы объяснить это лучше? – RafaelC

+0

Я не понимаю, что сочетание кода и вывода. Сделайте это на самом деле, пожалуйста. –

+0

Я согласен с тем, что этот вопрос имеет мало смысла, но String.join - это, вероятно, то, что вы ищете. – errata

ответ

0

Если две части имеют одинаковую длину:

>>> s, t = 'acegikmoqsuwy', 'bdfhjlnprtvxz' 
>>> print(''.join(a + b for a, b in zip(s, t))) 
abcdefghijklmnopqrstuvwxyz 

Если они не:

>>> s, t = 'acegikmoqsuwy\nbdfhjlnprtvxz', 'bdfhjlnprtvxzacegikmoqsuwy' 
>>> from itertools import zip_longest 
>>> print(''.join(a + b for a, b in zip_longest(s, t, fillvalue=''))) 
abcdefghijklmnopqrstuvwxyz 
abcdefghijklmnopqrstuvwxyz 

Или:

>>> s, t = 'acegikmoqsuwy\nbdfhjlnprtvxz', 'bdfhjlnprtvxzacegikmoqsuwy' 
>>> tmp = list(s + t) 
>>> tmp[0::2], tmp[1::2] = s, t 
>>> print(''.join(tmp)) 
abcdefghijklmnopqrstuvwxyz 
abcdefghijklmnopqrstuvwxyz 

Или:

>>> s, t = 'acegikmoqsuwy\nbdfhjlnprtvxz', 'bdfhjlnprtvxzacegikmoqsuwy' 
>>> print(''.join((s, t)[i % 2][i // 2] for i in range(len(s + t)))) 
abcdefghijklmnopqrstuvwxyz 
abcdefghijklmnopqrstuvwxyz 
+0

или '. '.join (itertools.chain.from_iterable (zip (s, t))' –

+0

У вас есть Stefan, на самом деле третий ответ легко изменить. – DimitrisCG

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