我想初始化一个多维列表。基本上,我想要一个10x10的网格——一个包含10个列表的列表,每个列表包含10个项目
每个列表值应初始化为整数0
在一行中执行此操作的明显方法:myList = [[0]*10]*10
将不起作用,因为它会生成一个列表,其中包含对一个列表的10个引用,因此更改任何行中的项目都会更改所有行中的项目
我看到的文档谈到了使用[:]
复制列表,但在使用乘法器时仍然不起作用:myList = [0]*10; myList = myList[:]*10
与myList = [[0]*10]*10
具有相同的效果
除了创建一个myList.append()
循环之外,有没有一种快速有效的方法来以这种方式初始化列表
使用list comprehension可以非常有效地执行此操作:
这是嵌套的list comprehension的作业
我想我会添加一个答案,因为这个问题是针对一般的n维情况的,我认为还没有答案。您可以使用以下示例对任意数量的维度递归执行此操作:
相关问题 更多 >
编程相关推荐