给定字符串 "the dude is a cool dude",
我想要找到第一个 'dude' 的索引:
mystring.findfirstindex('dude') # should return 4
这个该用哪个Python命令?
index
和find
除了find
方法外,还有一个index
方法。 find
和index
都会返回第一次出现的位置,但是如果没有找到,index
将会引发一个ValueError
,而find
则返回-1
。就速度而言,两者的基准测试结果相同。
s.find(t) #returns: -1, or index where t starts in s
s.index(t) #returns: Same as find, but raises ValueError if t is not in s
rfind
和rindex
:一般而言,find和index返回传入字符串开始的最小索引,而
rfind
和rindex
返回它开始的最大索引。大多数字符串搜索算法从左到右搜索,所以以r
开头的函数表示搜索发生在从右到左。
因此,在您搜索的元素可能接近列表结尾而不是开头的情况下,rfind
或rindex
会更快。
s.rfind(t) #returns: Same as find, but searched right to left
s.rindex(t) #returns: Same as index, but searches right to left
来源:《Python可视化快速入门指南》,Toby Donaldson
input_string = "this is a sentence"
,并且我们希望找到单词 is
的第一次出现,那么这段代码会起作用吗?# 在句子中查找单词的第一次出现
input_string = "this is a sentence"
# 返回单词的索引
matching_word = "is"
input_string.find("is")
- Regressor'this is a sentence'.find(' is ')
- zfj3ub94rf576hc4eegm为了以算法方式实现此操作,不使用任何Python内置函数。 可以这样实现:
def find_pos(string,word):
for i in range(len(string) - len(word)+1):
if string[i:i+len(word)] == word:
return i
return 'Not Found'
string = "the dude is a cool dude"
word = 'dude'
print(find_pos(string,word))
# output 4
def find_pos(chaine,x):
for i in range(len(chaine)):
if chaine[i] ==x :
return 'yes',i
return 'no'
诗句 = "如果你能在周围的一切都失控并将其归咎于你时保持冷静,\n如果你能相信自己,即使所有人都怀疑你,\n但也要容忍他们的怀疑;\n如果你能等待而不会因等待而感到疲倦,\n或者被谎言所包围,不要说谎,\n或者被憎恨,不要屈服于仇恨,\n但也不要显得太好,也不要说得太聪明:"
enter code here
print(verse)
#1. What is the length of the string variable verse?
verse_length = len(verse)
print("The length of verse is: {}".format(verse_length))
#2. What is the index of the first occurrence of the word 'and' in verse?
index = verse.find("and")
print("The index of the word 'and' in verse is {}".format(index))
s.find(" is ")+1
,虽然有点不正规但是完全可行。 - Eog