如何解决一旦我获得超过特定条件限制的商品,如何停止列表理解
我需要对方法进行一些澄清。我有一个列表“ 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 举报,一经查实,本站将立刻删除。