1、sorted()比较顺序
L_x = [('Bob', 60), ('Adam', 75), ('Bob', 75), ('Lisa', 60)] print(sorted(L_x)) #输出: [('Adam', 75), ('Bob', 60), ('Bob', 75), ('Lisa', 60)]
2、”key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序“
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] def by_score(t): # 看看函数对参数做了啥 print(f'{-t[1]=}') return -t[1] L2 = sorted(L, key=by_score) print(L2) '''输出: -t[1]=-75 -t[1]=-92 -t[1]=-66 -t[1]=-88 [('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)] '''
3、-t[1]是如何与t对应的呢,想到dict, 猜测着模拟下:
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] L_dict = {} def by_score(t): L_dict[-t[1]] = t return -t[1] L2 = sorted(L, key=by_score) print(f'{L2=}') print(f'{L_dict=}') for k in sorted(L_dict): print(k,L_dict[k]) '''输出: L2=[('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)] L_dict={-75: ('Bob', 75), -92: ('Adam', 92), -66: ('Bart', 66), -88: ('Lisa', 88)} -92 ('Adam', 92) -88 ('Lisa', 88) -75 ('Bob', 75) -66 ('Bart', 66) '''
4、把元素换成索引,写自己的sorted():
L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)] def by_score(t): return -t[1] def my_sorted(obj, key): index = 0 my_dict = {} for item in obj: my_dict[key(item)] = index index += 1 print(my_dict) new_list = list() for k in sorted(my_dict): # ^_^ new_list.append(obj[my_dict[k]]) return new_list L4 = my_sorted(L, key=by_score) print(L4) '''输出: {-75: 0, -92: 1, -66: 2, -88: 3} [('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)] '''
Sign in to make a reply
Xsz( ° ∀ ° )ノ
1、sorted()比较顺序
2、”key指定的函数将作用于list的每一个元素上,并根据key函数返回的结果进行排序“
3、-t[1]是如何与t对应的呢,想到dict, 猜测着模拟下:
4、把元素换成索引,写自己的sorted():