如何在Python中获得angular色的位置?

我怎样才能获得一个字符在Python中的位置?

有两个string方法, findindex

例:

 >>> myString = "Position of a character" >>> myString.index('s') 2 

不同之处在于find没有find你要找的东西就返回-1index抛出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