你怎么能把一根被切断的绳子的一部分连接起来?

2024-09-29 03:41:47 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种方法可以在python中合并一个被切片的字符串,以便在切片后获得原始字符串?如果不是用什么语言可以做到这一点?
我确实编辑过,希望能有所帮助。

下面是一个文本示例
预切片文本的开头:
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
预切片文本结束

我用s切分文本[开始:停止:step]在这个例子中,我把它分成两部分

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


如何连接结果第1部分和第2部分,以便获得原始的预切片文本。
原始预切片文本。
efghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz

谢谢大家的努力。你知道吗


根据斯蒂芬的第四次回复。你知道吗

>>> 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公司
azo5apdxjjhrfjsps01zekqq05xeehcnjgmwefcuvxw77kd/YI9Q01QIyoo8J6y
b9Wu4uFPQiCy2+Fr4SIKtrpOrsbrqG54BPFY66NeQ9NbG217QCbcaUlXHpmokiIc公司
6T94uTkLRo+lv2qwzmbfyywbuu2lwd+7dd45或7cxinm9jqdhl8fkcfuttxh
8w/8eCZtPOQwCAX+vnRFT4DtgDotRdagDEswtuPTd8YbpemIa/c01ylexgivvvtlp
JwimeWx9d+njgl2nx2emayzn0vnqstoqcewtyxbbjjjaxnidi7+HApeHyN2JcKu公司
LFjdTQFaQB0JGdloIXSJBqhOCMXBfd7mJ5c9sY6abE4bfP9/znbqT35y3GVU9RyX公司
NVKOujgxzi0/xQ公司==
=DvXG


Tags: 字符串文本消息公司切片resulttmplist
1条回答
网友
1楼 · 发布于 2024-09-29 03:41:47

如果两部分长度相等:

>>> 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

相关问题 更多 >