如何使用python复制字符串中的字符(就地)?

2024-10-03 06:18:10 发布

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

如果这个问题用词不当,我深表歉意;我在下面提供了一个输入和期望的输出来说明我想要产生的效果

inpt = 'aabbaa'
duplicate_range = [2,4]

some_func(inpt, duplicate_range)
>>>>'aabbbbaa'

本质上,我想复制在我的inpt字符串中找到的bb,这样复制就在原始出现之后立即发生


Tags: 字符串rangesomefuncbb效果duplicate本质
3条回答

我认为你需要:

inpt = 'aabbaa'
duplicate_range = [2,4]

def some_func(x, rng):
  substr = x[rng[0]:rng[1]]
  x = x[:rng[0]]+substr*2+x[rng[1]:]
  return x

print(some_func(inpt, duplicate_range))

我能想到的一个简单而优雅的方式是:

def some_func(inpt,a,b):
     return inpt[:a] + inpt[a:b]*2 + inpt[b:]

您可以从范围列表中构建一个slice,并通过切片初始字符串并添加要复制的子字符串来构建一个新字符串

inpt = 'aabbaa'
duplicate_range = [2,4]

s = slice(*duplicate_range)
inpt[:s.start] + inpt[s]*2 + inpt[s.stop:]
# 'aabbbbaa'

相关问题 更多 >