首页 > 解决方案 > 如何在枚举中打印倒数第二个项目?

问题描述

我正在打印我列举的列表中的最后一项。我怎样才能打印倒数第二个项目?

import itertools

mylist = itertools.cycle(["Blue", "Green", "Red"])

current_number = 14

for num, item in enumerate(mylist, 1):
    print (num, item)
    if num >= (current_number):
        print(item)
        break

印刷:

(1, 'Blue')
(2, 'Green')
(3, 'Red')
(4, 'Blue')
(5, 'Green')
(6, 'Red')
(7, 'Blue')
(8, 'Green')
(9, 'Red')
(10, 'Blue')
(11, 'Green')
(12, 'Red')
(13, 'Blue')
(14, 'Green')
Green

最后一项是绿色的。我还想打印倒数第二个项目,在这种情况下为蓝色。

有没有一种干净的方法可以在同一个 if 语句中同时打印最后一个和倒数第二个?

标签: pythonpython-3.x

解决方案


保存上一项

prev = None
for num, item in enumerate(list, 1):
    print(num, item)
    if num >= current_number:
        print(item, prev)  # -> Green Blue
        break
    prev = item  # For next iteration

顺便说一句,list这是一个不好的变量名,因为它会隐藏内置list类型。


推荐阅读