我想插入一些文字,并在本文中找到一些选定的字符,每个字母都有索引,例如
" hello world中的所有字母L
和O
!"
答案 0 :(得分:1)
如果您希望每个字符的索引使用defaultdict,其中键是字母,值是包含该字母出现的索引/索引的列表,您可以使用{{获取每个字符的索引3}}:
s = "hello world!"
from collections import defaultdict
d = defaultdict(list)
for ind, ch in enumerate(s):
d[ch].append(ind)
然后使用字母
查找索引查找In [46]: d["o"]
Out[46]: [4, 7]
In [47]: d["l"]
Out[47]: [2, 3, 9]
如果您只想要特定字母的索引,可以使用enumerate:
再次使用list compinds = [ind for ind, ch in enumerate(s) if ch == "o" ]
对于你的逻辑你需要从索引+ 1:
string.find('o', index + 1)
如果不这样做,您将只是在同一个索引处找到相同的字母并无限循环。
如果要替换字母,请使用dict创建映射并使用dict.get
进行替换:
d = {"A": "E", "B": "X", "C": "M"}
s = "BACK"
print("".join([d.get(ch, ch) for ch in s]))
答案 1 :(得分:0)
我同意@Padraic Cunningham所说的一切(+1)。要更改某些字母的字母,您可以创建一个使用替换方法的函数。
def modify(string):
string = string.lower() # changes all letters to lowercase
string = string.replace("a","e") # changes 'a' to 'e'
string = string.replace("b","x") # changes 'b' to 'x'
string = string.replace("c","m") # changes 'c' to 'm'
return string
>>> text = "Beyonce is awesome!"
>>> print text
Beyonce is awesome!
>>> text = modify(text)
>>> print text
xeyonme is ewesome!