我有一个清单[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)
答案 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