我需要按照字符串长度的增加顺序对下面的列表进行排序
lst = [None, 'abc', 'a', 'ab']
我使用以下代码执行此操作
lst.sort(key = lambda s: len(s))
但它产生了错误
TypeError:类型' NoneType'的对象没有len()
很明显None
类型对象没有任何长度。那么,我如何修改上面的代码,以便它开始将None
对象的长度解释为0
。
答案 0 :(得分:2)
您可以使用三元运算符:
lst.sort(key = lambda s: 0 if s is None else len(s))
当项目为0
时会返回 None
而其他项目会为len(s)