Python实现:获取指定数字在数组中的排名(含非存在场景)
Python 实现数字排名计算函数
函数逻辑说明
- 若目标数字存在于数组中,返回它在数组里的1-based排名(即索引位置加1)
- 若目标数字不在数组中,返回数组中比它小的元素的总个数,这个数值就是对应的排名
实现代码
def calculate_rank(target, arr): if target in arr: return arr.index(target) + 1 else: return sum(1 for num in arr if num < target)
示例验证
用题目给出的三个示例测试:
- 输入
7.23和[1.2,4.3,5,7.23,63.1]:print(calculate_rank(7.23, [1.2,4.3,5,7.23,63.1])) # 输出 4 - 输入
3.5和该数组:print(calculate_rank(3.5, [1.2,4.3,5,7.23,63.1])) # 输出 1 - 输入
100和该数组:print(calculate_rank(100, [1.2,4.3,5,7.23,63.1])) # 输出 5
补充说明
如果数组存在重复元素(比如 [2,2,3]),当前函数会返回目标元素第一次出现的位置排名。如果需要相同元素共享排名的逻辑,可以进一步调整代码,但当前实现完全匹配题目给出的示例要求。
内容的提问来源于stack exchange,提问作者Inder Rana
相关产品推荐
相关产品推荐

