【问题标题】:How to remove empty lists in python如何在python中删除空列表
【发布时间】:2018-06-23 10:26:22
【问题描述】:

我有一些如下列表。现在我想删除所有 [] 列表。

我该怎么做?

【问题讨论】:

标签: python python-3.x list


【解决方案1】:

由于空列表评估为 Falsebool,您可以使用 filterNone。注意L 可以是任何可迭代的列表,您不必以列表列表开头。

L = [['JOB', 'APPLIED', 'FOR'], [], [], [], ['TEST'], ['SOMETHING ELSE']]

res = list(filter(None, L))

print(res)

[['JOB', 'APPLIED', 'FOR'], ['TEST'], ['SOMETHING ELSE']]

【讨论】:

    【解决方案2】:
    l = [['a','b'],[],['c','d']]
    print([i for i in l if i])
    

    输出:

    [['a', 'b'], ['c', 'd']]
    

    【讨论】:

      【解决方案3】:

      首先将所有数据存储到一个列表中,以便您的新列表看起来像

      list=[[],[],[],['Job Applied for'],[],[],['My name']]
      

      然后写

      for i in list:
          if i==[]:
             list.remove(i)
      

      【讨论】:

        【解决方案4】:

        使用传统的 for 循环:

        x=[[9,8,7],[2,3],[5,7],[],["a","b"],[]]
        y=[]
        
        for i in range(0,len(x)):
            if len(x[i])!=0:
                y.append(x[i])
                    
        print(y)
        

        输出:

        [[9, 8, 7], [2, 3], [5, 7], ['a', 'b']]
        

        使用列表理解(简化方式):

        x=[[9,8,7],[2,3],[5,7],[],["a","b"],[],[1,2,3],[]]
        y=[ i for i in x if i ]
        print(y)
        

        结果:

        [[9, 8, 7], [2, 3], [5, 7], ['a', 'b'], [1, 2, 3]]
        

        【讨论】:

          猜你喜欢
          • 2011-06-18
          • 2017-03-05
          • 2017-11-02
          • 1970-01-01
          • 2022-01-06
          • 2018-05-03
          • 2022-01-10
          • 1970-01-01
          • 2021-02-12
          相关资源
          最近更新 更多