这是我的代码:
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”应该按降序打印,但代码不起作用,尽管我没有任何错误。知道为什么它没有被执行吗?
答案 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") %>'