3 回答

TA貢獻1851條經驗 獲得超3個贊
這有兩個String的方法,find()和index()。兩者之間的區別在于找不到搜索字符串時會發生什么。 find()回報-1 和index()加薪ValueError。
使用 find()
>>> myString = 'Position of a character'
>>> myString.find('s')
2
>>> myString.find('x')
-1
使用 index()
>>> myString = 'Position of a character'
>>> myString.index('s')
2
>>> myString.index('x')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
從Python手冊
string.find(s, sub[, start[, end]])
返回s中找到子字符串sub的最低索引,以使sub完全包含在中s[start:end]。-1失敗返回。開始和結束以及負值的解釋的默認值與切片相同。
和:
string.index(s, sub[, start[, end]])
喜歡,find()但是ValueError在找不到子字符串時提高。

TA貢獻1757條經驗 獲得超8個贊
僅出于完整性考慮,如果需要查找字符串中字符的所有位置,可以執行以下操作:
s = 'shak#spea#e'
c = '#'
print [pos for pos, char in enumerate(s) if char == c]
這將返回 [4, 9]

TA貢獻1828條經驗 獲得超3個贊
>>> s="mystring"
>>> s.index("r")
4
>>> s.find("r")
4
“長ed”方式
>>> for i,c in enumerate(s):
... if "r"==c: print i
...
4
得到子串,
>>> s="mystring"
>>> s[4:10]
'ring'
添加回答
舉報