gpt4 book ai didi

python - 如何有效地过滤 Python 列表理解中的计算值?

转载 作者:IT老高 更新时间:2023-10-28 20:35:57 26 4
gpt4 key购买 nike

Python 列表推导式语法使过滤推导式中的值变得容易。例如:

result = [x**2 for x in mylist if type(x) is int]

将返回 mylist 中整数平方的列表。但是,如果测试涉及一些(昂贵的)计算并且您想过滤结果怎么办?一种选择是:

result = [expensive(x) for x in mylist if expensive(x)]

这将产生一个非“假”的值的列表,昂贵的(x)值,但是对于每个 x 调用两次昂贵的()。是否有一种理解语法允许您进行此测试,同时每个 x 只调用一次昂贵的?

最佳答案

经过一分钟的思考,我想出了自己的答案。它可以通过嵌套推导来完成:

result = [y for y in (expensive(x) for x in mylist) if y]

我想这行得通,虽然我发现嵌套推导式的可读性很差

关于python - 如何有效地过滤 Python 列表理解中的计算值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/130262/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com