如何在字符串中查找项目的索引?

时间:2013-11-07 19:09:21

标签: python string python-3.x

但我需要第二次出现的索引。 就像我有一个字符串“asd#1-2#qwe” 我可以简单地使用索引方法来查找第一个#的索引值,即3。 但现在我想得到第二个#的索引,应该是7。

4 个答案:

答案 0 :(得分:6)

使用enumeratelist comprehension

>>> s = "asd#1-2#qwe"
>>> [i for i, c in enumerate(s) if c=='#']
[3, 7]

或者,如果字符串只包含两个'#',请使用str.rfind

>>> s.rfind('#')
7

使用regex:这也适用于重叠的子字符串:

>>> s = "asd##1-2####qwe"
>>> import re
#Find index of all '##' in s
>>> [m.start() for m in re.finditer(r'(?=##)', s)]
[3, 8, 9, 10]

答案 1 :(得分:2)

使用它:

s = "asd#1-2#qwe"
try:
    s.index('#',s.index('#')+1)
except:
    print "not found"

答案 2 :(得分:2)

使用索引方法获取第一次出现的#。如果索引方法允许起始位置,则使用第一个#+ 1的位置作为起始位置。如果没有,请从第一个#+ 1的位置开始复制字符串(可能是副本,然后是子字符串)。

答案 3 :(得分:0)

a =  "asd#1-2#qwe"

f = '#'

idx = []
for i, v in enumerate(a):
    if v == f:
        idx.append(i)
print idx