使用python中的索引查找下一个最大的元素

使用python中的索引查找下一个最大的元素,python,pandas,loops,indexing,return-value,Python,Pandas,Loops,Indexing,Return Value,我有listA=[中国、印度、法国、意大利]和listB=[2000、3000、3500、1000] 我使用代码: B_desc = sorted(B, reverse=True) max_B = max(B_desc) idx_max = B.index(max_B) first_country = A[idx_max] 查找对应于最大值的国家,但不确定如何使用索引查找具有第二大值的国家。 是否可以循环查找4个或更多具有最大值的国家/地区?您最好使用zip构建成对,然后按int值反向排序

我有list
A=[中国、印度、法国、意大利]
和list
B=[2000、3000、3500、1000]

我使用代码:

B_desc = sorted(B, reverse=True)
max_B = max(B_desc)
idx_max = B.index(max_B)
first_country = A[idx_max] 
查找对应于最大值的国家,但不确定如何使用索引查找具有第二大值的国家。
是否可以循环查找4个或更多具有最大值的国家/地区?

您最好使用
zip
构建成对,然后按
int
值反向排序

A = ["China", "India", "France", "Italy"]
B = [2000, 3000, 3500, 1000]

values = sorted(zip(A, B), key=lambda x: x[1], reverse=True)

>>print("Max pair", values[0])
Max pair ('France', 3500)

>>print("Second max pair", values[1])
Second max pair ('India', 3000)

您最好使用
zip
构建对,然后在
int
值上反向排序

A = ["China", "India", "France", "Italy"]
B = [2000, 3000, 3500, 1000]

values = sorted(zip(A, B), key=lambda x: x[1], reverse=True)

>>print("Max pair", values[0])
Max pair ('France', 3500)

>>print("Second max pair", values[1])
Second max pair ('India', 3000)

这可以工作,但如果len(A)!=莱恩(B)


这可以工作,但如果len(A)!=莱恩(B)


排序B时,最大值仅为
B_desc[0]
,第二个最大值为
B_desc[1]
@azro-thx解决方案足够好了。如果我想与一个值进行比较,那么当你对B进行排序时,最大值只是
B_desc[0]
,第二个最大值是
B_desc[1]
@azro-thx解决方案就足够了。如果要与值和循环进行比较,该怎么办