Is there a way to join-merge a sliced string in python so you can get the original string after the slicing? If not with what language this can be achieved?
I did edit i hope it will help.
I have a text example bellow
begining of pre-sliced text:
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
End of pre-sliced text
I slice the text with s[start:stop:step] and in this example i sliced it in 2 parts
s = """abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz"""
#part 1 result
print (s[0::2])
#part 2 result
print (s[1::2])
How can I join the results part1 and part2 so I will get the original pre-sliced text.
Original pre-sliced text.
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
Thank you all for your effort.
Based on Stephan's fourth reply.
>>> s, t = """acegikmoqsuwy
... bdfhjlnprtvxz""", """bdfhjlnprtvxzacegikmoqsuwy"""
>>> tmp = list(s + t)
>>> tmp[0::2], tmp[1::2] = s, t
>>> print(''.join(tmp))
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
using it to slice a PGP message in 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])
and joining it
>>> 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))
you get the Original PGP message
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
If the two parts have equal length:
>>> s, t = 'acegikmoqsuwy', 'bdfhjlnprtvxz'
>>> print(''.join(a + b for a, b in zip(s, t)))
abcdefghijklmnopqrstuvwxyz
If they're don't:
>>> 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
Or:
>>> s, t = 'acegikmoqsuwy\nbdfhjlnprtvxz', 'bdfhjlnprtvxzacegikmoqsuwy'
>>> tmp = list(s + t)
>>> tmp[0::2], tmp[1::2] = s, t
>>> print(''.join(tmp))
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
Or:
>>> s, t = 'acegikmoqsuwy\nbdfhjlnprtvxz', 'bdfhjlnprtvxzacegikmoqsuwy'
>>> print(''.join((s, t)[i % 2][i // 2] for i in range(len(s + t))))
abcdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz