python - 查找列表中大于当前元素的所有元素
问题描述
如果我在 Python 中有一个数组,其中所有元素都有不同的值,例如[1,4,6,2,10,3,5]
,有没有办法找到列表中大于当前索引的值的总数?
因此,例如,使用上面长度为 7 的列表,我想得到的结果是另一个长度为 7 的列表,它看起来像[6,3,1,5,0,4,2]
. 我在尝试遍历列表时遇到了麻烦(我尝试使用的代码如下)
for i in data:
count = np.sum(data > data[i])
N[i]=count
其中data
是包含所有相关值的数组,并且N
是np.zeros
与数据长度相同的列表
解决方案
这是我的建议:
我们对原始列表 (l) 进行排序,并将其保存在新列表 m 中。我们创建一个新列表 (k),在其中保存在 m 中每个元素的位置右侧找到的元素的计数。见下文:
l=[1,4,6,2,10,3,5]
m=sorted(l)
#[1, 2, 3, 4, 5, 6, 10]
k=[]
for i in l:
k.append(len(m)-m.index(i)-1)
>>> print(k)
[6, 3, 1, 5, 0, 4, 2]
推荐阅读
- tfs - 我无法在集合或项目级别向任何 TFS 2018 安全组添加新成员
- apache-spark - 使用 pyspark 直接从 hdfs 加载带有 pandas 的大数据
- apache-kafka - 聚合和存储来自多个来源的数据
- django - 检查用户是否存在于数据库表中
- javascript - 让孩子使用父母传递的功能的问题
- python - Psycopg-2 未在 Mac 上安装
- sql-server - 使用 sqllocaldb 的 VB Windows 窗体应用程序在非开发计算机上登录失败
- python - 有没有办法知道 pytest-html 何时创建实际的 html 文件?
- spring-integration - 如何在 Spring 集成网关中获取自定义标头值?
- reactjs - 我陷入了如何将 react js 连接到 phpmyadmin 数据库的问题上。你能不能给我解释一下。我是反应的初学者