Python编程整理: 一个关于列表排序的函数 -- sorted
实现要求:
将列表[1, 2, 3, 4, 5, 6, 7, 8, 9]按照元素与5距离从小到大进行排序
代码实现:
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9] def sorted_method(x): return abs(5-x) result = sorted(list1, key=sorted_method) print(result)
sorted(目标列表,排序规则)
排序规则为一个规定函数,函数输出值将按从大到小排列
另外,写一种不需要sorted函数的“笨”办法
list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9] result_list = [] for item in list1: if result_list: position_id = 0 for result_item in result_list: if abs(item-5) >= abs(result_item-5): position_id += 1 result_list.insert(position_id, item) else: result_list.append(item) print(result_list)
用到了insert函数
遍历结果列表的元素。如果距离5的距离更大,新元素插入的位置向右移动一个,即position_id += 1,以此找到插入新元素的位置
浙公网安备 33010602011771号