如何移动'list'的'index'方法的偏移量

Ger*_*eni 5 python list offset

我知道索引函数的工作方式如下:

list = ['dog','cat','pizza','trump', 'computer', 'trump']
print list.index('trump')
Run Code Online (Sandbox Code Playgroud)

输出将是3.但现在我希望他打印另一个'特朗普'字符串,它来自2个对象.但如果我会做同样的命令:

print list.index('trump')
Run Code Online (Sandbox Code Playgroud)

他将再次打印3 - 他看到的第一个特朗普.那么如何移动索引函数的'offset',所以她会在索引5中检测到另一个特朗普?非常感谢你们!

Chr*_*nds 5

list.index 采取第二个开始论点:

>>> lst = ['dog','cat','pizza','trump', 'computer', 'trump']
>>> lst.index('trump') # 1st index
3
>>> lst.index('trump',4) # 2nd index
5
>>> lst.index('trump',lst.index('trump')+1) # 2nd index
5
Run Code Online (Sandbox Code Playgroud)

或者,如果您想要所有索引,请使用列表推导:

>>> [idx for idx,item in enumerate(lst) if item == 'trump']
[3, 5]
Run Code Online (Sandbox Code Playgroud)


Jea*_*bre 5

只需记下字符串出现的第一个索引,并将额外参数传递给index第二个:

l = ['dog','cat','pizza','trump', 'computer', 'trump']
i = l.index("trump")
print(i)
print(l.index("trump",i+1))
Run Code Online (Sandbox Code Playgroud)

我明白了:

3
5
Run Code Online (Sandbox Code Playgroud)

从内联文档中,您可以传递可选的开始和结束值:

指数(...)

L.index(value,[start,[stop]]) - > integer - 返回第一个值的索引.如果值不存在,则引发ValueError.

(在一般情况下,如果值不在列表中并且相应地采取行动,则必须index通过try/except ValueError块来保护您的呼叫)

请注意,start可以是否定的.如果为负数,则从列表末尾计算索引.


E.D*_*.D. 1

创建列表的缩短版本。

list=['dog','cat','pizza','trump', 'computer', 'trump']
print list.index('trump')
list = list[list.index('trump')+1:]
print list.index('trump')
Run Code Online (Sandbox Code Playgroud)