繁体   English   中英

Python:将项目添加到列表,直到条件为真

[英]Python: Add item to list until a condition is true

正常的列表推导以这种方式发生:

new_list = [f(x) for x in l]

在 Python 中创建新列表的最简洁易读的方法是什么,类似于:

new_list = [f(x) while condition is True]

把事情简单化:

new_list = []
while condition:
    new_list.append(f(x))

当将某些内容更清楚地写为单独的语句时,将其强制为单个表达式没有任何好处。

使用迭代工具

import itertools as it

new_list = map(f, it.takewhile(condition, l))

它是一样的

new_list = [f(x) for x in it.takewhile(lambda x: condition(x), l)]

我可能会将它包装在生成器函数中:

def generate_items():
    while condition:
        yield f(x)
new_list = list(generate_items)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM