Python从列表中删除空元素

2024-10-05 10:12:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份清单,清单如下:

[['A001', 'atendimento', 'sust', 'concessionário', 'adv', 'bom', 'adj', '', ''],
 ['A001', 'falar', 'verb', 'ter', 'verb', 'nada', 'pron', 'carro', 'sust', '', ''],
 ['A001', 'não', 'adv', 'perguntar', 'verb', 'problema', 'sust', 'carro', 'sust', '', ''],
 ['A001', 'não', 'adv', 'oferecer', 'verb', 'ligar', 'verb', 'compra', 'sust', '', ''],
 ['A001', 'não', 'adv', 'oferecer', 'verb', 'serviço', 'sust', 'compra', 'sust', '', '']]

我想从每个列表中删除空元素,得到一个新的列表列表列表,而不包含空元素:

^{pr2}$

我怎么能做到这一点?在

我试过了:

str_list = filter(None, list_of_lists)

Tags: 元素列表bomlistverbrioadvadj
2条回答

您可以使用join

output = [' '.join(i).split() for i in list_of_list]

输出

^{pr2}$

您的尝试将从列表中删除空列表,而不是从子列表中删除空元素。而是将过滤器应用于子列表:

str_list = [list(filter(None, lst)) for lst in list_of_lists]

filter()的调用用list()包装,以防稍后在python3中尝试,因为filter()在py3中返回一个迭代器。在

请注意,由于您将其标记为,您可能必须小心,因为筛选可能会产生长度不同的行,并且在错误的列中显示项。如果知道每行的最后两项始终为空,则可以将它们切分:

^{pr2}$

相关问题 更多 >

    热门问题