Python 如何替换拼接列表中的字符?
我现在的代码非常简单Python 如何替换拼接列表中的字符?,python,splice,Python,Splice,我现在的代码非常简单 sentence = input("Input a sentence: ") print(sentence[::2]) 我的目标是,不要让拼接列表将字符替换为其他字符,如“A” 我试过的一些东西是 print(sentence[::2].replace("A", "B") print(sentence[::2], sep = "A") print(sentence[::2], "A") 您对sep的想法是正确的,但函数是错误的 使用[::2]提取替换字符 转换为单个字
sentence = input("Input a sentence: ")
print(sentence[::2])
我的目标是,不要让拼接列表将字符替换为其他字符,如“A”
我试过的一些东西是
print(sentence[::2].replace("A", "B")
print(sentence[::2], sep = "A")
print(sentence[::2], "A")
您对sep的想法是正确的,但函数是错误的
- 使用[::2]提取替换字符
- 转换为单个字符的列表
使用所需的分隔符,
A
>>> s = "Hello, world"
>>> s[::2]
'Hlo ol'
>>> list(s[::2])
['H', 'l', 'o', ' ', 'o', 'l']
>>> 'A'.join(list(s[::2]))
'HAlAoA AoAl'
Q.E.D
感谢kaya3的虫子捕捉。乱七八糟的解决方案:
>>> new = 'A'.join(list(s[::2]))
>>> if len(new) < len(s):
... new += 'A'
...
>>> new
'HAlAoA AoAlA'
>>>
>new='A'。加入(列表[::2]))
>>>如果len(新)小于len(s):
... 新+=“A”
...
>>>新的
“哈拉奥拉”
>>>
join方法几乎可以做到这一点,但即使在长度较长的字符串上也会失败:
加入('hello'[::2])
“哈劳”
>>>'A'.join('test'[::2])
“助教”
为了解决这个问题,如果长度为偶数,我们可以添加一个额外的A
:
def替换_交替(s,sep):
结果=sep.join(s[::2])
如果len(s)%2==0:
结果+=sep
返回结果
下面是使用正则表达式替换成对字符的替代解决方案:
>>re.sub('(.),r'\1A','hello')
“哈劳”
>>>re.sub(“(”)、r“\1A”、“测试”)
“塔莎”
一个带有打印的解决方案
:
s = 'test'
print(*s[::2], sep='A', end='\n' if len(s) % 2 else 'A\n')
印刷品:
tAsA
如果
s='tes'
:
tAs
如果不创建一个新字符串,这是不可能的。我如何创建一个新字符串呢?
print(“a”.join(句子[::2]))
请注意,结尾的d
已丢失,而不是转换为a
。end的使用非常好,op可能希望使用os.linesep
而不是\n
,但这可能会有点过头