如何使用弹出功能删除2D数组中的所有元素

时间:2019-02-05 17:32:22

标签: python

说我有这个代码:

Num = [[1,2,3], [4,5,6], [7,8,9]]

我想输出以下内容:

[ [],[],[] ]

请记住这是一个2D数组,如何删除其中的所有元素?

我当时正在考虑使用类似(对于Num中的i)的东西,但是什么都没想到

6 个答案:

答案 0 :(得分:3)

您可以使用for循环:

for x in num:
    x.clear()

这会将原始对象保留在num中,即不插入任何新对象。如果其他对象保留对num中对象的引用,然后它们将不同步,则这可能至关重要。例如:

num = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
ref = num[0]
num = [[] for __ in num]
print(ref)  # Still [1, 2, 3].

通过在x.clear()的每个元素上使用num,确保所有引用保持同步:

num = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
ref = num[0]
for x in num:
    x.clear()
print(ref)  # Now [].

答案 1 :(得分:2)

您可以进行列表理解:

Num[:] = [[] for _ in Num]

这将清除所有仍保留空白列表的元素,而无需创建新对象。

_(下划线)是“我不在乎”字段,用作扔掉的物品。

答案 2 :(得分:2)

这应该有效:

Num = [[1,2,3], [4,5,6], [7,8,9]]

for i in range(len(Num)):
    Num[i].clear()

print(Num)

这将输出为:

[[], [], []]

答案 3 :(得分:0)

尝试使用列表理解:

Num = [[] for _ in Num]

答案 4 :(得分:0)

我希望您得到这样的东西:

[[], [], []]

为此,您可以执行以下操作:

b = [[1,2,3], [4,5,6], [7,8,9]]
for i in range(len(b)):
     b[i] = []

答案 5 :(得分:0)

尝试以下一种方法:

Num = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
result = [[] for i in Num]
print(result)

输出:

[[], [], []]