Форум сайта python.su
0
написал такой код
def get_best_n(img_path, db_dir,n=10,types = ('*.jpg','*.tif','*.png')): os.chdir(db_dir) files_grabbed = [] for files in types: files_grabbed.extend(glob.glob(files)) hist_list=[] for names in files_grabbed: full_path= db_dir+'\\'+names src = cv.LoadImage(full_path, cv.CV_LOAD_IMAGE_COLOR) hist_list.append(compute_histogram_rgb(src)) score_list=[] img= cv.LoadImage(img_path, cv.CV_LOAD_IMAGE_COLOR) hist= compute_histogram_rgb(img) for h in hist_list: score_list.append(cv.CompareHist(hist, h, cv.CV_COMP_CORREL)) score_list.sort() return score_list
Отредактировано mrgloom (Март 13, 2013 10:13:34)
Офлайн
25
Достаточно использовать кортежи (tuple) то есть на выходе будет список:
[(score1, file1), (score2, file2), ..., (scoreN, fileN)]
Отредактировано s0rg (Март 13, 2013 10:33:09)
Офлайн
0
вроде бы dict как раз то что нужно, но непонятно как его сортировать
http://docs.python.org/2/library/stdtypes.html#dict
а как работать с tuple я так и не понял.
т.е. мне тупо нужно что то типа вектора со структурой на 2 ячейки и чтобы можно было добавлять\удалять\получать доступ по индексу\сортировать по одной из ячеек.
ну на самом деле хватит добавлять\сортировать по одной из ячеек, остальное только для удобства.
Офлайн
25
mrgloomИменно это я вам и предложил, поясняю примером:
вроде бы dict как раз то что нужно, но непонятно как его сортироватьhttp://docs.python.org/2/library/stdtypes.html#dictа как работать с tuple я так и не понял.т.е. мне тупо нужно что то типа вектора со структурой на 2 ячейки и чтобы можно было добавлять\удалять\получать доступ по индексу\сортировать по одной из ячеек.ну на самом деле хватит добавлять\сортировать по одной из ячеек, остальное только для удобства.
from operator import itemgetter list1 = ['a', 'b', 'c'] list2 = [3, 2, 1] list3 = zip(list2, list1) print list3 print sorted(list3, key=itemgetter(0))
Офлайн