为了账号安全,请及时绑定邮箱和手机立即绑定

如何获得字符在Python中的位置?

如何获得字符在Python中的位置?

慕无忌1623718 2019-12-07 15:36:21
如何在python中的字符串中获取字符的位置?
查看完整描述

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在找不到子字符串时提高。


查看完整回答
反对 回复 2019-12-07
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

仅出于完整性考虑,如果需要查找字符串中字符的所有位置,可以执行以下操作:


s = 'shak#spea#e'

c = '#'

print [pos for pos, char in enumerate(s) if char == c]

这将返回 [4, 9]


查看完整回答
反对 回复 2019-12-07
?
子衿沉夜

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'


查看完整回答
反对 回复 2019-12-07
  • 3 回答
  • 0 关注
  • 1487 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信