【发布时间】:2017-07-11 08:03:00
【问题描述】:
我们有一个清单
list = [1, 1, 1, 0, 1, 0, 0, 1]
我正在尝试找到一个函数来计算每个项目之前 0 的数量,然后将这个数字乘以 3。
def formula(n):
for x in list:
if x == 1:
form = n * 3
return form
#If x is 1, count the number of zeros right before x and multiply this by 3,
例如对于上面的列表,第一个元素是 1,并且它之前没有数字,程序应该计算 0 * 3 = 0,对于第二个项目,它也是一个 1,它之前的数字它也不是零,程序也应该计算 0 * 3 = 0。第 4 个元素是 0,所以程序应该忽略,对于第 5 个元素是 1,它之前的数字是 0,程序要计算 1 * 3 = 3,对于第 6 个元素,它之前的数字是 1,系统应该计算 0 * 3 = 0。第 7 个元素是 0,因为 x 不等于 1,所以程序不应该做任何事情.对于最后一个元素是 1,它之前的最后两个数字是零,程序应该计算 2 * 3 = 6
【问题讨论】:
-
为什么跳过第 7 个元素?
-
Uriel Eld 的回答使用了一个生成器,而 sparkandshine 使用了一个列表,使用你觉得更舒服的那个,生成器虽然很pythonic
-
感谢摩西的指正
标签: python list function count formula