yjptx121 发表于 2020-3-15 23:05:25

数字比较大小后排序输出的问题

输入三个整数x,y,z,请把这三个数由小到大输出。
想了两个方法,但是测试时一直有问题
第一个方法,列表排序:
count_str = input('请输入三个整数并以‘.’分开:')
list1 = count_str.split('.', 2)
print('排序前的列表顺序:{}'.format(list1))
list1.sort()
print('排序后的列表顺序:{}'.format(list1))

第二个方法,列表值的比较:
print('排序前的列表顺序:{}'.format(list1))
if list1 > list1:
    list1.append(list1.pop(0))
if list1 > list1:
    list1.append(list1.pop(1))
print('排序后的列表顺序:{}'.format(list1))

在输入1.16.4时一直报错,请大佬帮忙看看

冬雪雪冬 发表于 2020-3-15 23:18:47

输入的是字符串,比较大小是按ascii的次序算的。
可以先转换成整数,或list1.sort(key = int)

sunrise085 发表于 2020-3-15 23:22:46

因为你切割之后还是字符串,没有转为数字,所以是以ASCII排序的。
帮你添加了一行代码。
count_str = input('请输入三个整数并以‘.’分开:')
list1 = count_str.split('.', 2)
list1=          #将list1中的字符串转为数字
print('排序前的列表顺序:{}'.format(list1))
list1.sort()
print('排序后的列表顺序:{}'.format(list1))

yjptx121 发表于 2020-3-16 20:34:44

只能给一个最佳答案。抱歉了
页: [1]
查看完整版本: 数字比较大小后排序输出的问题