【问题标题】:How to check if a list is empty in Python? [duplicate]如何在 Python 中检查列表是否为空? [复制]
【发布时间】:2010-12-16 01:55:45
【问题描述】:

我正在使用的 API 可以返回空的 [] 列表。

以下条件语句未按预期工作:

if myList is not None: #not working
    pass

if myList is not []: #not working
    pass

什么会起作用?

【问题讨论】:

  • 使用!= 而不是is not 可以完成这项工作,尽管if myList 形式是首选。
  • 如果有人觉得它有用,我创建了一个 youtube 教程,比较了检查列表是否为空的不同方法。 API 响应是一个完美的用例youtube.com/watch?v=8V88bl3tuBQ
  • 为什么不直接处理列表呢?类似于: for item in myList: 如果列表为空,则失败,如果不是,您只需执行您一开始要做的任何事情。
  • if myList == []: print("The list is empty!")

标签: python list


【解决方案1】:
if not myList:
  print "Nothing here"

【讨论】:

  • 正如 Chris Lacasse 在另一条评论中所说,这是 PEP8 推荐的方式。
【解决方案2】:

空列表在布尔上下文(例如 if some_list:)中评估为 False。

【讨论】:

    【解决方案3】:

    我喜欢扎伦比斯蒂的回答。虽然,如果你想更明确,你总是可以这样做:

    if len(my_list) == 0:
        print "my_list is empty"
    

    【讨论】:

    • 你可以这样做,但它会违反 pep 8,它说: - 对于序列,(字符串,列表,元组),使用空序列是错误的事实。 Yes: if not seq: if seq: No: if len(seq) if not len(seq)
    • 感谢您向我指出这一点,克里斯·拉卡斯。我之前不知道 pep8
    • 这也是一种普遍的性能悲观:如果您只需要知道它们是否为空,就不要花时间计算可能很长的集合的元素。
    • @AdN: lenO(1) 操作,所以这不是真正的问题。但是,简单地检查if len(myList) 可能会更快(我不确定)。当然,如果我们这样下去,我们也可以if myList
    • 如果my_list 为None,上面会崩溃
    猜你喜欢
    • 2016-03-24
    • 2012-06-17
    • 2020-09-24
    • 2012-07-15
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 2011-07-22
    相关资源
    最近更新 更多