我试图建立一个函数,给定一个列表,它将返回一个元素相乘的列表,不包括索引相同的元素。例如,对于列表[1,2,3,4]
,它将返回[2*3*4,1*3*4,1*2*3]
。这就是我所尝试的
import numpy as np
def my_function(ints):
products = np.ones(len(ints))
indices = range(0,len(ints))
for i in ints:
if i != indices[i]
products *=ints[i]
return products
我想我的问题是我在想"我"会引用指数而不是这些指数的值。
1.如何创建引用索引而不是值的对象
1.有没有更好的方法来解决这个问题?
9条答案
按热度按时间nbnkbykc1#
对于
numpy
,这很简单:bsxbgnwa2#
摘自@interjay的评论:
oug3syen3#
enumerate
的解决方案:jmo0nnb34#
使用列表解析
cyej8jka5#
不使用除法
ep6jt1vc6#
"这里有一个简单的方法"
kqqjbcuj7#
下面是一个使用reduce的方法:
i7uaboj48#
将枚举合并到代码中的方法是
请注意,这不包括其中一个元素为0的情况。
nxagd54h9#
不使用任何库
只是不要忘记先用适当缩进为循环追加新数组。
有点混乱,但很有效[不推荐]