for循环枚举函数返回意外结果

时间:2019-04-29 18:17:50

标签: python python-3.x enumerate

嗨,我是Python的新手,通过枚举函数时,我得到了意外的结果。下面是我的代码。

for index, course in enumerate(courses, start= 1):
    print(index, course)

我希望看到:

1 PE
2 Comsci

但是我回来了:

(1, 'Math') 
(2, 'PE')
(3, 'Comsci')

2 个答案:

答案 0 :(得分:2)

根据我的收集,您正在尝试打印courses列表中除第一项之外的所有项。

正如奥斯丁在回答您的问题时,您需要在枚举器中使用courses[1:]而不是courses

courses=["MATH", "PE", "COMSCI"]
for index, course in enumerate(courses[1:], start=1):
    print(index, course)

返回

(1, 'PE')
(2, 'COMSCI')

答案 1 :(得分:-2)

您可以使用itertools来做到这一点:

import itertools
courses = ['a', 'b', 'c']
for index, course in itertools.islice(enumerate(courses), 1, None)):
    print((index, course))

将打印

(1, 'b')
(2, 'c')