一旦我获得超过特定条件限制的商品,如何停止列表理解

如何解决一旦我获得超过特定条件限制的商品,如何停止列表理解

我需要对方法进行一些澄清。我有一个列表“ m”,我正在遍历以查找一个超出某个限制(例如“ 90”)的整数。 一旦达到此限制,我想停止迭代,并发布该项目(满足条件)。 例如,如果98.877是该项,则必须将其追加到新列表中(请参见下面的代码段)。

问题

我的挑战是,我只能扩展满足条件的项目之前的项目。感谢您的帮助。

m = [('a',0.6720430254936218),('a',0.9672043025493621),0.8720430254936218),('c',('o',0.7720430254936218),('r',0.9720430254936218),('d',('i',('n',]

simis = []
def end_of_loop():
    raise stopiteration

simis.extend(list(end_of_loop() if item[1]*100 >= 90 else item[1]*100 for item in m))

print(simis)

解决方法

从技术上讲,这是一个生成器表达式,而不是列表理解。 无论如何,似乎您只是想查找-并追加满足条件的第一项,因此您只需要使用next

simis.append(next(item for item in m if item[1]*100 >= 90)[1]*100)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?