[英]Add item to list if condition is met until that list is a certain length (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.