coo*_*490 1 python string slice
我是Python的新手.我有一个字符串:
food = "popcorns"
beverage = "water"
Run Code Online (Sandbox Code Playgroud)
如何创建一个连接每两个字符并跳过第三个字符的新字符串?像这样:
PO-CO-NS和WA-ER
这样新的字符串就变成了
new_food = pocons
new_beverage = waer
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用这种连接从无限字符串构建一个新的100个字符串.这是我到目前为止所拥有的:
infinite_string
for i in range(0, 32):
new_string += infinite_string[i: i + 1: 3]
Run Code Online (Sandbox Code Playgroud)
我知道这不对.任何帮助表示赞赏
你可以使用:
''.join([c for i, c in enumerate(inputstring, 1) if i % 3])
Run Code Online (Sandbox Code Playgroud)
演示:
>>> food = "popcorns"
>>> beverage = "water"
>>> ''.join([c for i, c in enumerate(food, 1) if i % 3])
'pocons'
>>> ''.join([c for i, c in enumerate(beverage, 1) if i % 3])
'waer'
Run Code Online (Sandbox Code Playgroud)
另一种方法是在首次创建列表后删除每个第三个字符:
characters = list(inputstring)
del characters[2::3]
result = ''.join(characters)
Run Code Online (Sandbox Code Playgroud)
演示:
>>> characters = list(food)
>>> del characters[2::3]
>>> ''.join(characters)
'pocons'
Run Code Online (Sandbox Code Playgroud)
使用正则表达式:
>>> import re
>>> re.sub('(..).', r'\1', "popcorns")
'pocons'
>>> re.sub('(..).', r'\1', "water")
'waer'
Run Code Online (Sandbox Code Playgroud)