1

Let assume that I have simple code.

list = [1,3,4,5,6,7,8]

for i, val in enumerate(list):
        print(val)

I would like to start from i=2. How do this in the simplest way?

Something like for(int i=2; i<list.lenght; i++) in java.

4

2 回答 2

4

您可以在索引上使用普通循环:

lst = [1, 3, 4, 5, 6, 7, 8]
for i in range(2, len(lst)):
    val = lst[i]
    print(val)

或者你跳过第一个元素:

lst = [1, 3, 4, 5, 6, 7, 8]
for i, val in enumerate(lst):
    if i < 2:
        continue
    print(val)

第三种选择是使用itertools.islice跳过第一个元素。这将允许您将索引保持为 0, 1, ... 尽管您跳过了一个元素:

for i, val in enumerate(itertools.islice(lst, 2, None)):
    print(i, val) # would begin with 1 3, then 2 4, …

由于您的可迭代对象是一个列表,因此您也可以为此使用列表索引:

for i, val in enumerate(lst[2:]):
    print(i, val)
于 2013-05-25T20:28:18.077 回答
0
In [1]: for i,val in enumerate(list[2:]):
            print(val)
   .... 
4
5
6
7
8
于 2013-05-25T20:25:07.210 回答