如何将None类型对象的长度解释为零?

时间:2016-06-22 17:45:17

标签: python list sorting python-3.x

我需要按照字符串长度的增加顺序对下面的列表进行排序

lst = [None, 'abc', 'a', 'ab']

我使用以下代码执行此操作

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

但它产生了错误

  

TypeError:类型' NoneType'的对象没有len()

很明显None类型对象没有任何长度。那么,我如何修改上面的代码,以便它开始将None对象的长度解释为0

1 个答案:

答案 0 :(得分:2)

您可以使用三元运算符:

lst.sort(key = lambda s: 0 if s is None else len(s))
当项目为0时会返回

None而其他项目会为len(s)