正如我在评论中提到的,您可以在
sum()函数内使用生成器,如下所示:
sum(value == 0 for value in D.values())
或者,作为一种稍微优化和实用的方法,您可以使用
map如下功能:
sum(map((0).__eq__, D.values()))
基准测试:
In [56]: %timeit sum(map((0).__eq__, D.values()))1000000 loops, best of 3: 756 ns per loopIn [57]: %timeit sum(value == 0 for value in D.values())1000000 loops, best of 3: 977 ns per loop
请注意,虽然
map在这种情况下使用函数可能会得到更好的优化,但是为了获得关于这两种方法的全面而通用的想法,您还应该针对较大的数据集运行基准测试。然后,您可以决定何时使用哪个以获得更高的性能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)