【问题标题】:How to interpret length of None type object as zero?如何将无类型对象的长度解释为零?
【发布时间】:2016-06-22 17:45:17
【问题描述】:

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

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

我正在使用下面的代码来做到这一点

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

但它会产生错误

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

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

【问题讨论】:

  • key = lambda s:s is not None and len(s)
  • 为什么你的字符串列表中有Nones?您确定应该使用None 而不是空字符串吗?

标签: python list sorting python-3.x


【解决方案1】:

您可以使用三元运算符:

lst.sort(key = lambda s: 0 if s is None else len(s))

当项目为Nonelen(s) 为其他项目时返回0

【讨论】:

    猜你喜欢
    • 2017-07-24
    • 1970-01-01
    • 2019-08-19
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多