编辑使用乘法生成的嵌套列表的值时出现错误
Bug when edit values of nested list that generated using multiplication
欢迎大家
我尝试使用名为 mylist 的 python 制作列表,每个元素包含 3 个元素,其他列表包含 2 个这样的元素
[[None,None]]*3
当尝试通过设置 mylist[0][0] = 1
和 mylist[0][1] = 2
编辑列表中的第一个嵌套列表项时
然后尝试打印 mylist 这是输出:[[1, 2], [1, 2], [1, 2]]
它编辑所有列表项。
然而,当像 mylist = [[None, None], [None, None], [None, None]]
那样手动创建它时,请尝试正确完成我的编辑版本。
第一个案例代码:
mylist = [[None,None]]*3
mylist[0][0] = 1
mylist[0][1] = 2
print(mylist)
第一个案例输出:
[[1, 2], [1, 2], [1, 2]]
第二种情况代码:
mylist = [[None, None], [None, None], [None, None]]
mylist[0][0] = 1
mylist[0][1] = 2
print(mylist)
第二种情况输出:
[[1, 2], [None, None], [None, None]]
这是因为将列表相乘实际上并不像字符串那样创建自身的副本。对于您正在寻找的效果,您可以使用一个名为 NumPy 的模块,为此使用 numpy_r。
import numpy as np
mylist = np.array([[None, None]] * 3])
print(mylist)
输出将是:
[[[None None]
[None None]
[None None]]]
或者:
import numpy as np
mylist = np.r_[[[None, None]] * 3]
print(mylist)
输出:
[[None None]
[None None]
[None None]]
第二个没有额外的维度,如果你不明白的话。
如果您对 NumPy 了解不多,请单击 here, you can check here 安装 NumPy。
如果你想访问例如。第一项,您使用 mylist[0][0],但在 NumPy 数组中,您使用 mylist[0, 0]。
@Guimoute 在评论中给出了使用标准 python 不带模块的答案。
编辑:我写错了一些代码,我已经更正了。不要因为代码不起作用而更加沮丧,这只是一个错误。
欢迎大家
我尝试使用名为 mylist 的 python 制作列表,每个元素包含 3 个元素,其他列表包含 2 个这样的元素
[[None,None]]*3
当尝试通过设置 mylist[0][0] = 1
和 mylist[0][1] = 2
编辑列表中的第一个嵌套列表项时
然后尝试打印 mylist 这是输出:[[1, 2], [1, 2], [1, 2]]
它编辑所有列表项。
然而,当像 mylist = [[None, None], [None, None], [None, None]]
那样手动创建它时,请尝试正确完成我的编辑版本。
第一个案例代码:
mylist = [[None,None]]*3
mylist[0][0] = 1
mylist[0][1] = 2
print(mylist)
第一个案例输出:
[[1, 2], [1, 2], [1, 2]]
第二种情况代码:
mylist = [[None, None], [None, None], [None, None]]
mylist[0][0] = 1
mylist[0][1] = 2
print(mylist)
第二种情况输出:
[[1, 2], [None, None], [None, None]]
这是因为将列表相乘实际上并不像字符串那样创建自身的副本。对于您正在寻找的效果,您可以使用一个名为 NumPy 的模块,为此使用 numpy_r。
import numpy as np
mylist = np.array([[None, None]] * 3])
print(mylist)
输出将是:
[[[None None]
[None None]
[None None]]]
或者:
import numpy as np
mylist = np.r_[[[None, None]] * 3]
print(mylist)
输出:
[[None None]
[None None]
[None None]]
第二个没有额外的维度,如果你不明白的话。
如果您对 NumPy 了解不多,请单击 here, you can check here 安装 NumPy。 如果你想访问例如。第一项,您使用 mylist[0][0],但在 NumPy 数组中,您使用 mylist[0, 0]。 @Guimoute 在评论中给出了使用标准 python 不带模块的答案。
编辑:我写错了一些代码,我已经更正了。不要因为代码不起作用而更加沮丧,这只是一个错误。