“排序”功能在Python任务中不起作用

时间:2016-07-18 14:01:04

标签: python

这是我的代码:

def Descending_Order(num):
    return int(''.join(sorted(str(num).split(), reverse = True)))
print Descending_Order(0)
print Descending_Order(15)
print Descending_Order(123456789)

“num”应该按降序打印,但代码不起作用,尽管我没有任何错误。知道为什么它没有被执行吗?

2 个答案:

答案 0 :(得分:2)

split是多余的,多余的,是导致问题的原因。字符串的split方法需要一个分隔符,在您的情况下没有分隔符,因此默认为连续的空格。由于您的字符串没有连续的空格,因此会生成一个列表,其中包含字符串格式的数字作为唯一元素。

>>> str('123456789').split()
['123456789']

对结果列表进行排序是不变的,因为您要排序的是单个元素的列表

>>> sorted(['123456789'])
['123456789']

最后加入并将其转换为整数会恢复原始数字

>>> int(''.join(sorted(['123456789'])))
123456789

值得一提的是,sorted需要一个序列,所以一个字符串符合条件就可以排序而不会分成单个数字

你可能想要的是

>>> def Descending_Order(num):
    return int(''.join(sorted(str(num), reverse = True)))

>>> print Descending_Order(123456789)
987654321

答案 1 :(得分:0)

您也可以使用list拆分数字,然后按以下方式对列表进行排序:

SelectedValue='<%# Bind("StatusP") %>'