2024-09-26 17:58:14 发布
网友
假设我有一个昂贵的操作expensive(x: int) -> int和以下列表:
expensive(x: int) -> int
# expensive(x: int) -> int # check(x: int) -> bool [expensive(i) for i in range(LARGE_NUMBER) if check(expensive(i))]
如果我想避免为每个i运行两次expensive(i),有没有办法用列表理解保存它的值
i
expensive(i)
使用海象:
[cache for i in range(LARGE_NUMBER) if check(cache := expensive(i))]
您可以模拟嵌套理解:
[val for i in range(LARGE_NUMBER) for val in [expensive(i)] if check(val)]
使用海象:
您可以模拟嵌套理解:
相关问题 更多 >
编程相关推荐