字符串每行有数字,怎么让列宽度从小到大排序?

k ='''
'''
import re
text = k
r = re.sub(r'[~`!@#$%^&*()_\-+=|\\{\}\[\]:;\"\'<>,.?/·!¥…()—【】、?《》,。]+', '\n', text)
print(r)

str = (sorted(r.split(), key=len))
for name in str[:]:
    print(name)

  list.sort([, key=len])(原址修改,没有返回值,不可给变量赋值。如果强行赋值,得到的必是None)、sorted(lis[, key=len)(生成一个新列表,可以赋值。)排序内置函数的key参数就是自定义排序规则的,其参数必须是可以调用的函数,内置的、第三方的、自己写的、lambda匿名函数都可以。您的写法,实际上就是下面的写法,用字符串长度排序。reverse参数默认是False,升序,True为降序。

sorted(re.split(), key=lambda x: len(x)) # key的参数则是定义sorted排序规则的。

对您有帮助,请点击左边
“采纳该答案”

你上面的代码实现没问题呀,你的sorted方法就是按字符串的长度len来排序的。