Python 在列表中从特定键循环到列表末尾

Python 在列表中从特定键循环到列表末尾,python,Python,在Python中,如何循环遍历从键开始而非开始的列表。 e、 g 循环通过l但从b开始,例如l[1]简单的答案 只需使用: 它将生成一个新列表,其中删除了1之前的项目: >>> l[1:] ['b', 'c', 'd'] 更有效的替代方案 或者,如果您的列表很大,或者您要多次对列表进行切片,您可以使用。它返回一个迭代器,避免复制列表的整个其余部分,节省内存: >>> import itertools >>> s = itertools.is

在Python中,如何循环遍历从键开始而非开始的列表。 e、 g

循环通过
l
但从b开始,例如
l[1]

简单的答案 只需使用:

它将生成一个新列表,其中删除了
1
之前的项目:

>>> l[1:]
['b', 'c', 'd']
更有效的替代方案 或者,如果您的列表很大,或者您要多次对列表进行切片,您可以使用。它返回一个迭代器,避免复制列表的整个其余部分,节省内存:

>>> import itertools
>>> s = itertools.islice(l, 1, None)
>>> for i in s:
...     print(i)
... 
b
c
d
还要注意的是,由于它返回一个interator,因此您只能对它迭代一次:

>>> import itertools
>>> s = itertools.islice(l, 1, None)
>>> for i in s:
...     print(i)
... 
b
c
d
>>> for i in s:
...     print(i)
>>>
如何选择
我发现切片更清晰/更容易阅读,但是
itertools.islice()
可以更高效。当我的列表有数千个项目时,或者当我迭代数百个不同的切片时,我大部分时间都会使用切片,依赖于
itertools.islice()

for i in l[1:]:
    #do something with i

像这样分割列表的语法是:
l[1://code>

回答你的问题:

for i in l[1:]:
    print i
我的5美分:

start_from = 'b'

for val in l[l.index(start_from ) if start_from  in l else 0:]:
   print val

您想从列表中的第二个位置开始,还是从第一次出现的“键”开始?
for i in l[1:]:
    print i
start_from = 'b'

for val in l[l.index(start_from ) if start_from  in l else 0:]:
   print val