python - 循环在迭代整个列表之前停止
问题描述
我试图删除 res[1] 中低于 120 的所有值,并删除 res[0] 中相同索引的值,由于某种原因循环停止..并且不会继续删除列表的末尾。
多谢您的支持
这是代码:
def func ():
res=([30.0,40.0,49.0,28.0,30.0,57.0], [0, 30.0,400.0,160.0, 30.0, 30.0])
for i in res[1]:
if i<120:
ind=res[1].index(i)
res[1].remove(i)
del(res[0][ind])
else:
pass
return res
预期的结果是([49.0, 28.0], [400.0, 160.0])
,但我有这个结果([49.0, 28.0, 30.0, 57.0], [400.0, 160.0, 30.0, 30.0])
解决方案
而不是检查i < 120
,检查i >= 120
并简单地将传递的项目附加到新列表中并返回带有这些列表的元组。
In [179]: def func():
...: res=([30.0,40.0,49.0,28.0,30.0,57.0], [0, 30.0,400.0,160.0, 30.0, 30.0])
...: r0, r1 = [], []
...: for i in res[1]:
...: if i >= 120:
...: ind=res[1].index(i)
...: r1.append(i)
...: r0.append(res[0][ind])
...: return (r0, r1)
...:
In [180]: func()
Out[180]: ([49.0, 28.0], [400.0, 160.0])
推荐阅读
- azure-data-factory - azure 数据工厂是否支持转义字符?
- flutter - Dart 需要通过定价来过滤数组
- r - R Studio“过滤器”功能问题。过滤掉不包含特定值的项目
- javascript - JavaScript - 如何防止多个运算符输入?(加法和减法)
- java - 从 JAVA 的 Imgproc 类中删除 FONT_HERSHEY_SIMPLEX
- python - MySQL 错误:无法连接。通过 for 循环添加数据时设置无效
- python - 如何制作不下载系统音乐的discord.py音乐?
- flutter - Flutter 类型“String”不是“FutureOr”类型的子类型
' , 无键响应 Json - mysql - 如何在 octoberCMS 查询中组合多个 and or 条件?
- php - httpd.conf 会覆盖 php.ini 吗?