算法-排序类

排序问题

1. 找到列表中的差值最小的两个值
# 找到列表中差值最小的两个数字
demo = [1, 25, 55, 9, 20]

# 首先 降序排列
demo.sort(reverse=True)
print(demo)

# 计算得到差值
demo_list = [[(demo[i] - demo[i + 1]), demo[i], demo[i + 1]] for i in range(len(demo) - 1)]
print(demo_list)

# 根据差值排序
target = sorted(demo_list, key=lambda x: x[0])
print(target)

# 取得差值最小的两个元素
print(target[0][1::])

[55, 25, 20, 9, 1]
[[30, 55, 25], [5, 25, 20], [11, 20, 9], [8, 9, 1]]
[[5, 25, 20], [8, 9, 1], [11, 20, 9], [30, 55, 25]]
[25, 20]
posted @ 2021-10-20 22:53  疯狂列表推导式  阅读(26)  评论(0编辑  收藏  举报