Python列表理解在guard和result中具有相同的功能
发布时间:2020-12-16 22:53:51 所属栏目:Python 来源:网络整理
导读:我想知道是否有人有一个很好的干净Pythonic和有效的技术来实现在结果中涉及保护中相同表达的理解. 需要说明的是,请考虑以下简单示例: def f(a): print "Calling",a return a + 1print [ f(v) for v in xrange(3) if f(v) 1 ] 这将打印 Calling 0Calling 1Ca
我想知道是否有人有一个很好的干净Pythonic和有效的技术来实现在结果中涉及保护中相同表达的理解.
这将打印
证明f对于大多数元素被调用两次.这很好,如果f有副作用,我们想要什么,但如果f是一些没有副作用的昂贵操作,重复调用是不可取的.但是对于每个元素只调用f一次的解决方案对我来说似乎笨拙/冗长:
即使它被收缩成一条线
那么,任何人都能想出更好的东西吗? 最佳答案
您可以使用filter()函数:
但这与您上次建议的解决方案一样冗长. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- python – 从一个庞大且不断增长的数据集中优化慢速django查
- Python中的Classes和Metaclasses详解
- 在Python的Flask中如何识别通过AJAX进行的请求?
- IPython Notebook Kernel在运行Kmeans时死机
- 想做自媒体?利用Python写的机器人吸粉是真的快!百万粉丝不
- python – traceback.format_exc / print_exc在期待回溯时
- python获取文件夹大小的代码
- 4.3Python数据类型(3)之字符串类型
- python – 内存中来自`raw_input()`的字符串
- python – App Engine支持客户端证书