【发布时间】:2015-10-14 07:43:48
【问题描述】:
如何替换字符串中我们知道python中确切索引的字符?
例如:名称 = "ABCDEFGH" 我需要将所有奇数索引位置字符更改为“$”字符。
name = "A$C$E$G$"
(考虑索引从 0 开始)
【问题讨论】:
标签: python
如何替换字符串中我们知道python中确切索引的字符?
例如:名称 = "ABCDEFGH" 我需要将所有奇数索引位置字符更改为“$”字符。
name = "A$C$E$G$"
(考虑索引从 0 开始)
【问题讨论】:
标签: python
您可以使用enumerate 循环遍历字符串并在每次迭代中获取索引,然后根据您的逻辑,您可以保留正确的元素:
>>> ''.join([j if i%2==0 else '$' for i,j in enumerate(name)])
'A$C$E$G$'
【讨论】:
'$' if i%2 else j 稍微缩短它。
还有'$'.join(s[::2])
只取偶数字母,将它们转换为字符列表,然后交错 $
''.join(['$' if i in idx else s[i] for i in range(len(s))])
适用于任何索引数组 idx
【讨论】:
list() 电话。 :)
您可以通过索引引用字符串元素并形成一个新字符串。像这样的东西应该可以工作:
startingstring = 'mylittlestring'
nstr = ''
for i in range(0,len(startingstring)):
if i % 2 == 0:
nstr += startingstring[i]
else:
nstr += '$'
然后随心所欲地使用nstr。
【讨论】:
join 列表的原因是为了避免这种情况——每次使用+= 时都会创建一个新的字符串对象。
nstr 与新字符连接的新字符串,(2) 删除旧的 nstr 和 (3) 将新字符串移动到 nstr?
name = "ABCDEFGH"
nameL = list(name)
for i in range(len(nameL)):
if i%2==1:
nameL[i] = '$'
name = ''.join(nameL)
print(name)
【讨论】: