串接每两个字符

2024-05-06 06:35:51 发布

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

我是Python新手。我有一根绳子:

food = "popcorns"
beverage = "water"

如何创建一个新的字符串来连接每两个字符并跳过第三个字符?像这样:

PO-CO-NS和 瓦厄

所以新的字符串

^{pr2}$

我尝试用这种连接方式从一个无限长的字符串中构建一个新的100个字符的字符串。以下是我目前所掌握的情况:

infinite_string
for i in range(0, 32):
    new_string += infinite_string[i: i + 1: 3]

我知道这不对。感谢任何帮助


Tags: 字符串stringfood方式字符poinfinitens
3条回答
>>> food = "popcorns"
>>> ''.join(''.join(i) for i in zip(food[0::3], food[1::3]))
'pocons'

使用正则表达式:

>>> import re
>>> re.sub('(..).', r'\1', "popcorns")
'pocons'
>>> re.sub('(..).', r'\1', "water")
'waer'

您可以使用:

''.join([c for i, c in enumerate(inputstring, 1) if i % 3])

演示:

^{pr2}$

另一种方法是在第一次创建列表后每隔三个字符删除一次

characters = list(inputstring)
del characters[2::3]
result = ''.join(characters)

演示:

>>> characters = list(food)
>>> del characters[2::3]
>>> ''.join(characters)
'pocons'

相关问题 更多 >