python 寻找可迭代(list)的目标元素的下表方法

python中sorted()排序后返回同时返回下标

nums = [4, 1, 5, 2, 9, 6, 8, 7]
sorted_nums = sorted(enumerate(nums), key=lambda x: x[1])
idx = [i[0] for i in sorted_nums]
nums = [i[1] for i in sorted_nums]

除了使用 emuerate()函数外,还可以使用zip()

nums = [4, 1, 5, 2, 9, 6, 8, 7]
idenx = list(range(len(nums)))
sorted_nums = zip(idenx,nums)
sorted_nums = sorted(enumerate(nums), key=lambda x: x[1])
idx = [i[0] for i in sorted_nums]
nums = [i[1] for i in sorted_nums]

两者本质是一样的

另外一种方法是将list转化为numpy,这样就可以使用numpy的内置函数np.where()

 注意np.where返回的数据格式,返回的是2个array数组,一个存放的是1维坐标,另一个存放的二维坐标,这里的A是二维,如果n维会生成n个array。

 或者是np.argmax()  函数 

 

  

原文地址:https://www.cnblogs.com/cuc-lyp/p/13797911.html