列表

时间:2016-11-22 14:42:43

标签: list pandas series

我有一个清单[1.05,1.06,1.08,1.01,1.29,1.07,1.06] 我想创建一个函数将列表中的任何元素i乘以所有下一个元素i + 1,直到列表的结尾。 示例:function(2),它将返回(1.08 * 1.01 * 1.29 * 1.07 * 1.06)的结果

我发现了这个,但是它返回NoneType,所以我不能使用这个函数返回的值。 谢谢,

def multiply(j,n):
   total=1
   for i in range(j,len(n)):
      total*=n[i]
   if total is not None:
      print (total)

1 个答案:

答案 0 :(得分:1)

如果需要pandas解决方案首先按iloc选择,然后使用prod

s = pd.Series([1,2,3,4])
print (s)
0    1
1    2
2    3
3    4
dtype: int64

print (s.iloc[2:])
2    3
3    4
dtype: int64

print (s.iloc[2:].prod())
12

但如果需要纯python,请使用Benjamin comment中的解决方案 - 而不是print - return

m = [1,2,3,4]

def multiply(j,n):
   total=1
   for i in range(j,len(n)):
      total*=n[i]
   return total

print (multiply(2,m))
12