如何在Python中获得angular色的位置?
我怎样才能获得一个字符在Python中的位置?
有两个string方法, find
和index
。
例:
>>> myString = "Position of a character" >>> myString.index('s') 2
不同之处在于find
没有find你要找的东西就返回-1
。 index
抛出exception。
函数
str.find(sub[, start[, end]])
返回findsubstring子string的最低索引,使得sub包含在[start, end]
范围内。 可选参数开始和结束被解释为切片符号。 如果未find子项,则返回-1
。
和:
函数
str.index(sub[, start[, end]])
和find()
,但是当找不到子string时会raise ValueError
。
只是为了完整性,如果您需要在string中查找子string的所有位置,则可以执行以下操作:
s = 'shak#spea#e' c = '#' print [pos for pos, char in enumerate(s) if char == c]
这将返回[4, 9]
>>> s="mystring" >>> s.index("r") 4 >>> s.find("r") 4
“啰嗦”的方式
>>> for i,c in enumerate(s): ... if "r"==c: print i ... 4
得到子串,
>>> s="mystring" >>> s[4:10] 'ring'
当string包含重复字符时会发生什么? 从我的经验与index()
我看到重复你回来相同的指数。
例如:
s = 'abccde' for c in s: print('%s, %d' % (c, s.index(c)))
会返回:
a, 0 b, 1 c, 2 c, 2 d, 4
在这种情况下,你可以做这样的事情:
for i, character in enumerate(my_string): # i is the position of the character in the string
string.find(character) string.index(character)
也许你想看一下文档来找出两者之间的区别。
只是为了完成,如果我想在文件名中find扩展名来检查它,我需要find最后的'。',在这种情况下使用rfind:
path = 'toto.titi.tata..xls' path.find('.') 4 path.rfind('.') 15