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

Xol*_*lve 9 python list

正常的列表理解以这种方式出现:

new_list = [f(x) for x in l]
Run Code Online (Sandbox Code Playgroud)

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

new_list = [f(x) while condition is True]
Run Code Online (Sandbox Code Playgroud)

Dun*_*can 12

把事情简单化:

new_list = []
while condition:
    new_list.append(f(x))
Run Code Online (Sandbox Code Playgroud)

当将某些内容更明确地写为单独的语句时,将某些内容强制转换为单个表达式没有任何好处.


eum*_*iro 8

使用itertools:

import itertools as it

new_list = map(f, it.takewhile(condition, l))
Run Code Online (Sandbox Code Playgroud)

它是一样的

new_list = [f(x) for x in it.takewhile(lambda x: condition(x), l)]
Run Code Online (Sandbox Code Playgroud)

  • `takewhile(lambda x:condition(x),l)`可以写成`takewhile(condition,l)`。 (2认同)