关于#python#的问题,请各位专家解答!

number_str = "156,78,96,104,54,162,199,122,66,120"
number_sp = number_str.split(",")
number_list = list(number_sp)
number_list.sort(reverse=True)
print(number_list)
想让列表最后倒序排列,为什么结果不正确

img

在此代码中,分隔符""应该被替换为逗号,,才能将字符串正确地分隔成数字列表。此外,如果要将数字列表按照数值降序排序,需要使用参数key=int,告诉sort()函数将字符串转换为整数进行排序。以下是修改后的代码:

number_str = "156,78,96,104,54,162,199,122,66,120"
number_sp = number_str.split(",")
number_list = list(number_sp)
number_list.sort(reverse=True, key=int)
print (number_list)

运行输出结果为:

['199', '162', '156', '122', '120', '104', '96', '78', '66', '54']

可以看到,经过修改后的代码成功将数字列表倒序排列。
回答不易,望采纳!

因为你没有把他转成 int 类型

因为是字符串一个一个的比,'9'肯定大于'1' 所以'96' > '199',改成这样:

number_str = "156,78,96,104,54,162,199,122,66,120"
number_sp = number_str.split(",")
number_list = list(number_sp)
number_list.sort(key=lambda x:int(x), reverse=True)

print(number_list)

有帮助的话,请点采纳该答案~