(1)自定義方法
mylist = [1, 2, 3, 100, 5]
index_list=[i[0] for i in sorted(enumerate(mylist), key=lambda x:x[1])]
enumerate(mylist)返回乙個包含(index,value)元組的列表
[(0, 1), (1, 2), (2, 3), (3, 100), (4, 5)]
通過將列表傳遞給排序並指定乙個函式來抽取排序鍵(每個元組的第二個元素;這是lambda的用途),最後,每個排序的元素的原始索引使用[i [0 ] for i in …]列表解析。
來自:(2)np.argsort函式
import numpy as np
a = np.array([1,4,3,5,2])
b = np.argsort(a)
print(b)
print結果為[0 4 2 1 3] ,即為從小到大排序的索引
來自:(3)利用heapq模組
# -*- coding: utf-8 -*-
import heapq
nums = [1, 8, 2, 23, 7, -4, 18, 23, 24, 37, 2]
# 最大的3個數的索引
max_num_index_list = map(nums.index, heapq.nlargest(3, nums))
# 最小的3個數的索引
min_num_index_list = map(nums.index, heapq.nsmallest(3, nums))
print(list(max_num_index_list))
print(list(min_num_index_list))
來自:
這裡利用了陣列自身屬性 index,
list.index(target), 其中list是目標list,target是需要的下標對應的值,返回對應的索引值
map函式的返回值是乙個 iterators,所以列印這裡加乙個list強制輸出所有
推薦前兩種方法, 第三種不推薦,第三種遇到相同大小的時候會都返回第乙個位置的索引例如求如下列表中最大的三個數字的索引
# -*- coding: utf-8 -*-
__author__ = 'fff_zrx'
import heapq
import numpy as np
test_list= [1,2,3,3,4]
index_list=[i[0] for i in sorted(enumerate(test_list), key=lambda x:x[1])]
b = np.argsort(np.array(test_list))
max_num_index_list = map(test_list.index, heapq.nlargest(3, test_list))
print("第一種:",index_list[-3:][::-1])
print("第二種:",b[-3:][::-1])
print("第三種:",list(max_num_index_list))
輸出為:
第一種: [4, 3, 2]
第二種: [4 3 2]
第三種: [4, 2, 2]
ps:a[::-1]相當於 a[-1:-len(a)-1:-1],即倒序輸出,前兩者預設都是從小到大排序的索引,所以需要倒序輸出一下
Oracle中獲得資料更新件數
在oracle的sql plus中,當update或者delete或者select這些dml操作以後,會顯示更新 刪除 檢索了多少行,在jdbc操作中,也會有返回值內容是影響了多少行。但是在我們的pl sql中如何取得這個資料呢。在pl sql中,當你進行檢索的時候,你可以自己開啟乙個游標curso...
C語言獲得陣列長度的函式
1 c語言中,定義陣列後可以用sizeof命令獲得陣列的長度 可容納元素個數 例如 double a int length length sizeof a sizeof a 0 陣列佔記憶體總空間,除以單個元素佔記憶體空間大小 printf length of a d length 輸出length...
Oracle HowTo 如何獲得資料庫的DBID
在進行資料庫恢復的過程中,很多時候我們需要知道oracle資料庫的dbid,通常有以下幾種方法可以獲得資料庫的dbid.1.查詢v database獲得 由於dbid在控制檔案和資料檔案中都存在記錄,所以如果能夠mount資料庫就可以查詢v database檢視獲得.sql alter databa...