gzj137070928 发表于 2020-10-27 18:27:14

列表按绝对值排序

输入一个列表,要求列表中的每个元素都为整数;

将列表中的所有元素按照它们的绝对值大小进行排序,绝对值相同的还保持原来的相对位置,打印排序后的列表(绝对值大小仅作为排序依据,打印出的列表中元素仍为原列表中的元素)。

可以使用以下实现列表alist的输入:

alist=list(map(int,input().split()))

输入格式:
共一行,列表中的元素值,以空格隔开。

输出格式:
共一行,为一个列表。

输入样例:
-2 1 3

输出样例:


# 下面自己的程序耗时长,低效率
# def sort_abs(list):
#   list1 = []
#   for each in list:
#         list1.append(abs(each))
#   if len(list) > 1:
#         for i in range(len(list)):
#             a = min(list1)
#             min_index = list1.index(a)
#             b = list
#             list = list
#             list = b
#   print(list)
# alist = list(map(int, input().split()))
# sort_abs(alist)

# 提示用sort方法排序


def abs_key(elem):
    return abs(elem)
alist = list(map(int, input().split()))
alist.sort(key=abs_key)
print(alist)

qiuyouzhi 发表于 2020-10-27 18:39:22

可以直接用一行代码搞定:
sorted(list(map(int, input().split())), key = lambda elem: abs(elem))

gzj137070928 发表于 2020-10-28 13:56:39

qiuyouzhi 发表于 2020-10-27 18:39
可以直接用一行代码搞定:

匿名函数的简化功能{:5_106:}
页: [1]
查看完整版本: 列表按绝对值排序