gpt4 book ai didi

python - 如何从 Python 中的列表列表中删除值

转载 作者:行者123 更新时间:2023-11-28 20:37:06 24 4
gpt4 key购买 nike

我有一个 list

[['Name', 'Place', 'Batch'], ['11', '', 'BBI', '', '2015'], ['12', '', 'CCU', '', '', '', '', '2016'], ['13', '', '', 'BOM', '', '', '', '', '2017']]

我想从列表中删除所有的 ''。

我试过的代码是:

>>> for line in list:
... if line == '':
... list.remove(line)
...
print(list)

它显示的输出是:

[['Name', 'Place', 'Batch'], ['11', '', 'BBI', '', '2015'], ['12', '', 'CCU', '', '', '', '', '2016'], ['13', '', '', 'BOM', '', '', '', '', '2017']]

有人可以建议这有什么问题吗?

最佳答案

这就是你想要的:

a = [['Name', 'Place', 'Batch'], ['11', '', 'BBI', '', '2015'], ['12', '', 'CCU', '', '', '', '', '2016'], ['13', '', '', 'BOM', '', '', '', '', '2017']]
b = [[x for x in y if x != ''] for y in a] # kudos @Moses
print(b) # prints: [['Name', 'Place', 'Batch'], ['11', 'BBI', '2015'], ['12', 'CCU', '2016'], ['13', 'BOM', '2017']]

您的解决方案不起作用,因为 line 在每个步骤中都变成了整个子列表,而不是子列表的元素。

现在看来您正在尝试就地修改原始列表(不创建任何其他变量)。这是一个崇高的事业,但是在循环时循环遍历您正在修改的列表是不可取的,并且可能会导致您的代码引发错误(IndexError 或其他)。

最后,不要使用名称 list,因为 Python 在内部使用它并且您正在覆盖它的预期用法

关于python - 如何从 Python 中的列表列表中删除值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43805854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com