H指数(h-index)的实现
某人的h指数是指在其发表的N篇论文中,有h篇论文分别被引用了至少h次,其余N-h篇的引用次数均不超过h次。例如:列表[6,5,6,5,5,4,3,5,6,2,1]表示某人发表的11篇论文,其中5篇论文的引用次数超过了5次的有7篇,(6篇论文的应用次数超过6次的没有,仅有3),所以h-index=5
做法:让其按被引次数从高到低排列,往下核对,直到某篇论文的序号大于该论文被引次数,那个序号减去1就是h指数。
def H_index(indexList):
SortedSet = sorted(indexList, reverse = True)
#print(SortedSet) #注意使用列表,保留重复数据并排序
flag = 1 #标识位,用来分析列表是否break过,防止[6,5,4] 问题出现,该列h-index 为3
for i in range(0,len(SortedSet)):
if i >=SortedSet[i]:
flag = 0
break
t=i
if flag:
t=len(SortedSet)
return t
test=[6,5,6,5,5,4,3,5,6,2,1] #测试数据
print('H-index指数为:',H_index(test))