首页 > 解决方案 > 如何检查列表是否为空

问题描述

我对空列表的定义是:

a = []
a = [[], []]
a = [[], [], [[], []]]

普通方式不适用,因为最后两个列表的长度不为0,在if条件下会被认为是True。

if a:
    print(True)    # True
#-------------------------
print(len(a) != 0) # True

有什么好的检查方法吗?

标签: pythonpython-3.x

解决方案


有点傻,但可能是不错的解决方案:

if str(a).strip('[], '):

或者当list可能包含自身并且应该被视为空时:

if str(a).strip('[], .'):

依赖于 s 仅用括号、空格和逗号表示的事实list,但它们包含的任何内容(没有故意病态的repr)都涉及其他一些字符。list包含自己的 s...在递归时使用,因此剥离处理它们。所以我们只是在 empty s 和empty s的 s 中strip看到的唯一字符,如果还剩下什么,那里面就有非y 的东西。listlistlistlist


推荐阅读