您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

根据字符串的长度对Python列表进行排序

根据字符串的长度对Python列表进行排序

将传递lambda给时sort,您需要返回一个整数,而不是布尔值。因此,您的代码应改为:

xs.sort(lambda x,y: cmp(len(x), len(y)))

请注意,cmp一个内置函数cmp(x, y)如果x小于则返回-1 yx等于则返回0 yx大于则返回1 y

当然,您可以改为使用key参数:

xs.sort(key=lambda s: len(s))

这告诉该sort方法根据键函数返回的值进行排序。

编辑:感谢下面的balpha和Ruslan指出,您可以len直接将其作为关键参数传递给函数,从而消除了对a的需要lambda

xs.sort(key=len)

正如Ruslan在下面指出的那样,您还可以使用内置的排序函数而不是list.sort方法,该方法创建一个新列表,而不是就地对现有列表进行排序:

print(sorted(xs, key=len))
python 2022/1/1 18:38:38 有246人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶