假设我有两个数据集。我每周都有用户尝试我的服务。
trials = [2,2,2,8,8,4]
我每周都有一份注册试用用户的统计表。
conversions = [1,0,2,4,8,3]
我可以很快做到这一点:
conversion_rate = []
for n in range(len(trials)):
conversion_rate.append(conversions[n]/trials[n])
你能想出一个更优雅的方法吗?
奖励:结果是一个int
[0, 0, 1, 0, 1, 0]
,不是浮动列表。最简单的方法是什么?
最佳答案
使用拉链:
[c/t for c,t in zip(conversions, trials)]
获取float的最优雅的方法是升级到python 3.x。
如果需要使用Python2.x,那么可以编写以下代码:
>>> [float(c)/t for c,t in zip(conversions, trials)]
[0.5, 0.0, 1.0, 0.5, 1.0, 0.75]
或者,您可以在文件开头添加:
from __future__ import division
但请注意,这将影响程序中所有除法的行为,因此您需要仔细检查是否有需要整数除法的地方,如果有,请编写
//
而不是/
。