比较列表中的每个元素是否大于其他所有元素

时间:2019-05-11 17:13:40

标签: python loops compare

我想比较列表中的元素是否大于其他所有元素(其他元素相同)。 如果一个元素大于另一个元素,则得到1。总和1(取决于比较“获胜”的数量)的存储方式应让我知道列表中每个specif元素的比较结果是多少。

要弄清列表中的每个元素,都应是具有ID的个人

Python

#Here I create 10 random values which I call individual with the random
#funcion plus mean and standard deviation
a, b = 3, 10
mu, sigma = 5.6, 2
dist = stats.truncnorm((a - mu) / sigma, (b - mu) / sigma, loc=mu,  scale=sigma)
individuals = dist.rvs(10)

#Initialize the list where I want to store the 1s
outcome = num.zeros(n)

#Trying to loop through all the elements

for k in range(0, n):
    for j in range(0, n):
        if individuals[k] == individuals[j]:
            continue
        elif individuals[k] < individuals[j]:
            continue
        elif individuals[k] > individuals[j]:
             outcome[i] += 1

    return outcome[i]

我最终得到的结果只有一个值。 大概是第一个元素中的每1秒累加一次

1 个答案:

答案 0 :(得分:0)

这是一种更有效的方法,首先对列表进行排序,这使进程为O(n * log(n))而不是O(n ** 2)。

我们对列表进行排序,并保留每个值的原始索引(这是O(n * log(n))。

然后,我们遍历列表以设置输出计数,这是排序后的列表中值的索引,但重复项除外-在这种情况下,我们只跟踪要调整的相同值的数量结果。

appBar: {
    marginLeft: drawerWidth,
    [theme.breakpoints.up('sm')]: {
      width: `calc(100% - ${drawerWidth}px)`,
    },
  },

menuButton: {
    marginRight: 20,
    [theme.breakpoints.up('sm')]: {
      display: 'none',
    },
  }, 

一些测试:

calc(100% - ${drawerWidth}px)