Skip to main content
 首页 » 编程设计

python之将列表乘以列表的所有元素,除了它自己的索引

2025年05月04日13youxin

我正在尝试构建一个函数,给定一个列表将返回一个列表,其中的元素相乘,不包括位于同一索引处的元素。例如对于列表 [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 

我认为我的问题是我认为“i”会引用索引而不是这些索引的值。

  1. 我怎样才能创建一些引用索引而不是值的东西
  2. 有没有更好的方法来解决这个问题?

请您参考如下方法:

使用 numpy 这很容易:

import numpy as np 
def fun(input): 
    arr = np.array(input) 
    return arr.prod() / arr