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,以此找到插入新元素的位置

posted @ 2021-01-04 13:34  cutomorrow  阅读(539)  评论(0)    收藏  举报