Python 从列表中删除空列表

Python 从列表中删除空列表,python,python-3.x,list,remove,Python,Python 3.x,List,Remove,预期的输出是[5,6,3,9] 但是获得的输出是[5,6,3,[],9] 这可以解释吗?选项1: 您可能还会发现这一点很有用:过滤器示例将删除0元素以及空列表。因为0的“真实性”是False就像None的真实性一样。正确,我应该定义False。我将更新我的回答。我认为在该示例中,您需要的是lambda过滤函数。另一个注意事项是,对于Python3.x,filter()返回一个生成器而不是列表。。因此,如果您希望它成为一个列表,您可以将其传递到list(filter(…)。好的,我可能会删除选项2

预期的输出是
[5,6,3,9]

但是获得的输出是
[5,6,3,[],9]

这可以解释吗?

选项1


您可能还会发现这一点很有用:过滤器示例将删除
0
元素以及空列表。因为
0
的“真实性”是
False
就像
None
的真实性一样。正确,我应该定义
False
。我将更新我的回答。我认为在该示例中,您需要的是
lambda
过滤函数。另一个注意事项是,对于Python3.x,
filter()
返回一个生成器而不是列表。。因此,如果您希望它成为一个列表,您可以将其传递到
list(filter(…)
。好的,我可能会删除选项2,因为它会让OP:)感到困惑。)
test_list = [5, 6, [], 3, [], [], 9]
for i in test_list:
    if i == []:
        test_list.remove([])
print(test_list)
list = [x for x in test_list if x != []]