此函数采用一个字符串参数。假设字符串将是一系列由空格分隔的整数。忽略任何多余的空格。空字符串或空格字符串将返回空字符串。否则,该函数将返回带有参数整数的字符串
用空格分隔,但现在按排序顺序。不要检查无效的字符串。例如,如果参数为43 -1 17
,则函数返回-1 17 43
。`
在输入为\t42 4 -17 \n
的情况下不起作用
def sort_int_string(string):
strlist = string.split(' ')
new = []
for value in strlist:
value2 = int(value)
new.append(value2)
new = sorted(new)
strlist2 = []
for number in new:
number = str(number)
strlist2.append(number)
final = ' '.join(strlist2)
return final
答案 0 :(得分:2)
根据您的评论,更改以下行:
strlist = string.split(' ')
到
strlist = string.split()
这应该起作用,因为未指定sep时,默认为空白。 [\ t \ n \ r \ f \ v]都是空格。
答案 1 :(得分:1)
@VanTan解释了您的代码中的问题。但您也可以使用:
x = '43 -1 17'
res = ' '.join(map(str, sorted(map(int, x.split()))))
# '-1 17 43'
答案 2 :(得分:0)
此列表理解应处理您遇到的空白:
s = "\t42 4 -17 \n"
sorted([int(x) for x in " ".join(s.split()).split()])
[-17,4,42]