说我有这个代码:
Num = [[1,2,3], [4,5,6], [7,8,9]]
我想输出以下内容:
[ [],[],[] ]
请记住这是一个2D数组,如何删除其中的所有元素?
我当时正在考虑使用类似(对于Num中的i)的东西,但是什么都没想到
答案 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)
输出:
[[], [], []]