如何从2d lis中删除空字符串

2024-04-25 20:18:05 发布

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

我这里有个2d列表:

list = [ [1,2,3], [1,'',''], ['','','']] 

我要删除列表中“”的每个实例,因此输出应如下所示:

>> [ [1,2,3],[1]] 

我想删除所有的''-s'会把我排除在这个列表之外,所以你能解释一下如何在2d列表中删除空列表吗?你知道吗

>> [ [1,2,3],[1],[]]

谢谢你!你知道吗


Tags: 实例列表list
3条回答

也可以使用过滤器:

lst = [ [1,2,3], [1,'',''], ['','','']] #don't use list to define a list
list(filter(None,[list(filter(None,l)) for l in lst]))

输出:

[[1, 2, 3], [1]]
a = [[1,2,3], [1,'',''], ['','','']] 
b = [[i for i in item if i != ''] for item in a]
c = [item for item in b if item != []]
print(b)
print(c)

输出

[[1, 2, 3], [1], []]
[[1, 2, 3], [1]]

带有嵌套列表理解的一行代码(虽然不是很干巴巴的):

[[y for y in x if y != ''] for x in list if [y for y in x if y != ''] != []]
# [[1, 2, 3], [1]]

相关问题 更多 >