如何在多个字符串中查找字符串中的某些字母?
问题描述:
我希望能够挑出字符串中的某些字母,但需要能够获得多个位置,而不仅仅是第一个(Python)。目前,我有这样的代码:如何在多个字符串中查找字符串中的某些字母?
word=apple #just and example
character=input("Take a guess")
if character == "a":
place=word.find("a")
elif character == "b":
place=word.find("b")
elif character == "c":
place=word.find("c")
elif character == "d":
place=word.find("d")
elif character == "e":
place=word.find("e")
elif character == "f":
place=word.find("f")
elif character == "g":
place=word.find("g")
elif character == "h":
place=word.find("h")
elif character == "i":
place=word.find("i")
elif character == "j":
place=word.find("j")
elif character == "k":
place=word.find("k")
elif character == "l":
place=word.find("l")
elif character == "m":
place=word.find("m")
elif character == "n":
place=word.find("n")
elif character == "o":
place=word.find("o")
elif character == "p":
place=word.find("p")
elif character == "q":
place=word.find("q")
elif character == "r":
place=word.find("r")
elif character == "s":
place=word.find("s")
elif character == "t":
place=word.find("t")
elif character == "u":
place=word.find("u")
elif character == "v":
place=word.find("v")
elif character == "x":
place=word.find("w")
elif character == "w":
place=word.find("x")
elif character == "y":
place=word.find("y")
else:
place=word.find("z")
这工作找到一个字母的地方,但如果我想找到双方普的这是行不通的,它会只告诉我第一的位置。所以我真正想知道的是,如果有一些循环可以让我找到字母并将它们设置为两个不同的变量,比如“place”和“place2”,或者我必须有多次不同的次数为每个单独的起点。
答
您可以使用re.finditer()
得到串的所有出现:
>>> import re
>>> word = "apple" #just and example
>>> character = input("Take a guess: ")
>>> for occurrence in re.finditer(character, word):
... print('character: {}, {}'.format(character, occurrence.start()))
答
正则表达式是一个强大的工具。但是,使用正则表达式进行简单的字符串文字搜索会产生相当大的开销。
下面是一个简单的替代一边喊str.find
,直到所有事件被发现:
def findall(mainstring, substring):
pos = -1
while True:
pos = mainstring.find(substring, pos+1)
if pos == -1:
break
yield pos
for occurence in findall("apple", "p"):
print(occurence)
# prints: 1 2
首先,只要使用'地方= word.find(人物)'。这将节省大量的代码。此外,你缺少''苹果“'周围的引号。 – brandaemon
对不起,我在正确的代码中没有错,只是没有复制和粘贴前两行。而我并没有想到在那里使用字符变量。谢谢! –
可能重复的[python - 查找字符串中的字符串 - 我可以得到所有索引?](http://stackoverflow.com/questions/11122291/python-find-char-in-string-can-i-get-all-索引) – VPfB