python - 如何在枚举中打印倒数第二个项目?
问题描述
我正在打印我列举的列表中的最后一项。我怎样才能打印倒数第二个项目?
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 语句中同时打印最后一个和倒数第二个?
解决方案
保存上一项
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
类型。
推荐阅读
- android - Persistent BottomSheet:滑动以展开问题
- python-2.7 - inegers 列表的嵌套列表 - 进行算术运算
- java - 测试休息控制器时出现断言错误预期:200 实际:404
- html - 如何更改此 CSS 以减少下拉效果的错误?
- android - 如果 Fragment 中没有 @Inject 构造函数,则无法提供 LinearLayoutManager
- node.js - 为什么容器在执行 docker run 命令后立即退出?
- c - 用 Malloc 连接两个字符串
- python - 为什么我的 RawKernel 减速器会导致 cudaErrorIllegalAddress?
- java - Graphics2D 在保存文件前旋转
- javascript - 在 NPM 安装中使用 SubDivisionModifier 三 - 缺少示例