python - 如何用索引向后枚举python中的列表(从结尾到开头)
问题描述
我想遍历从 Digikey api 接收到的数据列表,任何人都没有太多运气谷歌搜索,因为该功能enumerate(reversed(part.standard_pricing))
无法正常工作,并且由于某种原因您无法反转类似的part.standard_pricing
东西:
for b_idx in range(part.standard_pricing, -1, -1):
print(f"Test at: {b_idx} , Q: {part.standard_pricing[b_idx].break_quantity}")
if PCountQ >= part.standard_pricing[b_idx].break_quantity:
parts_df['PRICE_PER_PCB_Q'][idx] = part.standard_pricing[b_idx].unit_price * PCountQ
break
但是范围也不适用于列表...
我想这样做:
for b_idx, price_break in enumerate(part.standard_pricing):
只是从末尾开始part.standard_pricing
并让索引减少而不是增加
关于如何以python方式做到这一点的任何想法?
解决方案
您可以调用enumerate
列表,然后将枚举对象转换为列表,它将给出元组列表,其中每个元组将具有索引和值,最后迭代reversed
列表。
data = [1,2,3,4]
for i,d in reversed(list(enumerate(data))):
print(i,d)
3 4
2 3
1 2
0 1
如果您不想在内存中创建另一个序列副本,您可以创建自定义生成器。
def reverseEnum(data: list):
for i in range(len(data)-1, -1, -1):
yield (i, data[i])
for i, d in reverseEnum([1, 2, 3, 4]):
print(i, d)
3 4
2 3
1 2
0 1
推荐阅读
- fusionauth - Docker 上的 FusionAuth - 默认登录凭据
- python - 在此代码中找到 Argument 和 Parameter
- android - Android Studio 4.0.0 Java 8 库在 D8 和 R8 构建错误中脱糖
- java - 无法正确解析真假值
- python - “site-packages\PIL\image.py”,第 2131 行,保存中...PermissionError:[错误 13] 权限被拒绝:scr.png
- variables - 如何在 pinescript(Tradingview) 中制作全局变量
- laravel - 如何将选择和选项转换为 Laravel 表单元素
- reactjs - 如何让 jest 使用与 create-react-app 上的 react-script 测试相同的配置运行?
- mysql - MySQL 存储数据的最佳方式
- api - 我如何调用 opencart api 来获取所有产品和订单?