如何在不导入任何库的情况下获取列表的排名? (如果重复,则所有重复的排名等于平均位置)[关闭]

2024-01-29

如何在不导入任何库的情况下获取列表的排名?最小的值将排名 1,下一个较小的值将排名 2,依此类推。

(如果重复,则所有重复的排名等于平均位置)

E.g.

X = [10, 20, 20, 50, 40]

预期输出:2.5,因为 5(排名 2 + 排名 3)/ 2 = 2.5

X = [1, 2.5, 2.5, 5, 4]

我设法到达这里:

#add original position
X_data = list(enumerate(X, start=1))

#sort by value
X_data = list(sorted(X_data, key=lambda x: x[1], reverse=False))

print(X_data)

Output:

[(1, 10), (2, 20), (3, 20), (5, 40), (4, 50)]

构建字典中的排名列表:

>>> X = [10, 20, 20, 50, 40]
>>> ranks = {}
>>> for i, val in enumerate(sorted(X), 1):
...     ranks.setdefault(val, []).append(i)
...

然后取每个列表的平均值以获得每个值的平均排名:

>>> avg_ranks = {v: sum(r)/len(r) for v, r in ranks.items()}

然后使用平均排名字典按原始顺序获取原始列表中每个项目的排名:

>>> [avg_ranks[val] for val in X]
[1.0, 2.5, 2.5, 5.0, 4.0]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不导入任何库的情况下获取列表的排名? (如果重复,则所有重复的排名等于平均位置)[关闭] 的相关文章

随机推荐

  • Golang 比较和更新来自两个不同映射字符串接口的键

    将两个 yaml 文件解组到两个不同的映射后 我想比较两个映射的键 外部键和内部键 因为它是嵌套映射 以及第一个映射 configMap 中是否存在任何键 外部或内部键 和第二张地图 userconfigMap 中不存在 我想将该密钥附加到
  • BoxLayout:无法设置子组件大小

    我有一个JFrame SuperTest and JPanel SuperLogin 登录面板具有用户名和密码输入字段以及登录按钮 我希望它看起来像这样 但如下图所示 输入字段的高度和宽度太大 超级测试 java import javax
  • Tridion 2009 TBB:如何确定页面是否已发布到特定发布目标?

    在使用 TOM NET API 的 TBB 中 我想获取已发布页面的列表 基本上我正在构建站点地图 我正在尝试确定 Tridion ContentManager CommunicationManagement Page 是否已发布 似乎没有
  • 通过 __VA_OPT__ 的递归宏

    编写递归宏是否合法 VA OPT GCC 和 Clang 似乎没有递归替换 但我不确定它是否是故意的 如 VA OPT 支持是最近才出现的 C 规范 19 3 1 3 VA OPT 否则 替换由扩展的结果组成 内容作为当前类函数宏的替换列表
  • 更高 API 上的 NetworkOnMainThreadException

    仅当我在更高的 API 上进行调试时 脚本才会强制关闭 16 但是当涉及到 API 时 它工作正常 10 这可能是我的项目设置问题吗 这是对服务器的一个简单请求 用于获取片段中的类别列表 画廊 java public class galle
  • 随机猜谜游戏 - bug

    当我输入字符串而不是整数时 此代码出现问题 如何检查用户是否输入了字符而不是整数 我想向用户发出一条消息 说你应该使用数字 而不是字符 另外 如果您在这段代码中发现任何我可以改进的地方 请帮助我 我是C语言新手 include
  • 在 Delphi 中使用/不使用 JCL 托管 CLR - 示例

    有人可以在这里发布一个如何在 Delphi 中托管 CLR 的示例吗 我读过类似的question https stackoverflow com questions 258875 hosting the net runtime in a
  • Dictionary 的神秘行为

    我正在开发一个基于 Asp net MVC 3 0 的大型系统 并在 Mono 2 10 8 Windows 7 上工作 一切都很好 直到几天前的一刻 在我的 API 中 我有几个使用字典的实用程序类 例如 像这样的 public stat
  • 缓冲阅读器和扫描仪

    我想知道这是怎么回事 它给了我一个构造函数错误 java io InputSream BufferedReader br new BufferedReader System in String filename br readLine Bu
  • 调整 UICollectionView 高度

    我试图通过在加载视图控制器时将其设置为 0 来调整 UICollectionView 高度的大小 然后在按下按钮时通过动画增加其大小 我尝试了一些不同的东西 但它的大小根本没有改变 以下是我尝试将其高度更改为 0 的所有不同方法 CGRec
  • X11:列出顶级窗口

    到目前为止我发现了两种方法 对于每个根窗口 默认屏幕 特定屏幕 所有屏幕等 列出每个直接子窗口 递归地搜索每个直接子窗口以查找窗口WM STATE财产 该窗口成为直接子窗口的顶级应用程序窗口 并且所有递归都可以停止 如果直接子级的层次结构中
  • MPMoviePlayerController 背景颜色不会粘住

    我正在尝试更改 MPMoviePlayerController 的背景颜色 但无法让它保持不变 我在用着 moviePlayer view backgroundColor UIColor redColor 视频加载时我可以看到背景闪烁红色
  • jtable如何使用rs2xml

    我目前是java新手 我一直在寻找一种将数据库信息放入jtable的有效方法 我听说了rs2xml 我真的很想学习这个 因为其他方法让我感到困惑并且让我头疼 有谁知道如何有效地使用它 如果您不介意的话可以用一个简单的代码来解释一下 提前致谢
  • 三元运算符与 if-else 语句的性能

    注意 确实 这个问题已经在许多其他语言中得到了解答 但是 我找不到 Python 的答案 所以不要标记为重复 Python 中的 if else 语句和三元运算符在性能上有区别吗 我怀疑是否存在性能差异 它们编译为等效的字节码序列 gt g
  • 自动换行也不让数字换行

    我有这个正在工作的表单唯一的事情是当用户在文本框数字中输入很多数字时 Example 12345678 3567892 1235674 36778883 566666678 35674748999 with no spaces 它不想包裹
  • Django 虚拟主机设置。 Apache mod_wsgi

    我希望我的问题有一个简单的答案 因为我对 python 和 Apache 不是最有经验的 我正在尝试将 Apache 与 mod wsgi 连接起来 我已经使用虚拟主机来做到这一点 见下文
  • 带有自定义适配器的微调器不会在选择时消失

    我正在使用一个Spinner使用名为的自定义适配器类AlgorithmAdapter原则上一切工作正常 这意味着会出现微调器弹出窗口 并且所有包含的视图都会适当膨胀 然而 我无法找到的是在做出选择时如何 告诉 微调器 我当然知道setSel
  • Java servlet:request.getParameter 和 request.setAttribute 以我不明白的方式连接[重复]

    这个问题在这里已经有答案了 在 doPost 方法的顶部 我获取了之前使用基本表单在 JSP 中设置的一些参数 protected void doPost HttpServletRequest request HttpServletResp
  • document.location.href 和 document.location 有什么区别?

    有什么区别document location href and document location 各个浏览器都一样吗 document location是同义词window location几乎自从 JavaScript 存在以来 它就已
  • 如何在不导入任何库的情况下获取列表的排名? (如果重复,则所有重复的排名等于平均位置)[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何在不导入任何库的情况下获取列表的排名 最小的值将排名 1 下一个较小的值将排名 2 依此类推 如果重复 则所有重复的排名等于平均位置 E