我想在Python(2.7)中创建一个3D数组,以便像这样使用:
distance[i][j][k]
数组的大小应该是我拥有的变量的大小。(n n n)
我尝试使用:
distance = [[[]*n]*n]
但这似乎不起作用。
我只能使用默认库,并且乘法(即[[0]*n]*n
)的方法将不起作用,因为它们链接到相同的指针,并且我需要所有值都是单独的
您应该使用列表理解:
>>> import pprint
>>> n = 3
>>> distance = [[[0 for k in xrange(n)] for j in xrange(n)] for i in xrange(n)]
>>> pprint.pprint(distance)
[[[0, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]]
>>> distance[0][1]
[0, 0, 0]
>>> distance[0][1][2]
0
您本可以使用一个看起来像您尝试过的语句来生成数据结构,但是由于内部列表是按引用复制的,因此它会产生副作用:
>>> distance=[[[0]*n]*n]*n
>>> pprint.pprint(distance)
[[[0, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [0, 0, 0]],
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]]
>>> distance[0][0][0] = 1
>>> pprint.pprint(distance)
[[[1, 0, 0], [1, 0, 0], [1, 0, 0]],
[[1, 0, 0], [1, 0, 0], [1, 0, 0]],
[[1, 0, 0], [1, 0, 0], [1, 0, 0]]]
3D 效果使您可以从二维 (2D) 图稿创建三维 (3D) 对象。您可以通过高光、阴影、旋转及其他属性来控制 3D 对象的外观。您还可以将图稿贴到 3D 对象中的每一个表面上。 有两种创建 3D 对象的方法:通过凸出或通过绕转。另外,还可以在三维空间中旋转 2D 或 3D 对象。要应用或修改现有 3D 对象的 3D 效果,请选择该对象,然后在 “外观 ”面板中双击该效果。 注:3D 对象在屏幕上可
问题内容: 我想使用Python创建Postgres数据库。 我收到以下错误: 我正在使用psycopg2进行连接。我不明白这是什么问题。我想做的是连接到数据库(Postgres): 然后创建另一个数据库: 这是我通常要做的,我想通过创建Python脚本来实现此自动化。 问题答案: 使用psycopg2扩展名ISOLATION_LEVEL_AUTOCOMMIT: 发出命令且不需要commit()或
问题内容: 我想将Python函数的某些参数提前“传递”给另一个函数。 这是我正在做的简化: 我不想使用某种形式的传递,以后再进行分解,因为传递给我的函数不知道传递给它。 对于小组项目来说,这有点太聪明了……是否有更直接或更Python的方法来执行此操作? 谢谢! 问题答案: 这称为currying或部分应用程序。您可以使用内置的functools.partial()。像下面这样的东西会做你想要的
问题内容: 是否可以在Python的用法或帮助()中不显示参数的情况下将其添加到python中? 问题答案: 是的,您可以将选项设置为。这是argparse文档中的示例:
问题内容: 我有一个带几个参数的Python函数。在某些情况下,可以忽略其中一些参数。 这些参数通过是字符串,每个都有不同的含义。我可以选择要以任何组合形式传递的可选参数,这一点很重要。例如,或,,或,或所有它们(这些是我的选择)。 如果我可以重载该函数,那就太好了-但我读到Python不支持重载。我试图在列表中插入一些必需的int参数-并收到参数不匹配错误。 现在,我正在发送空字符串来代替前几个
问题内容: 我想使用python创建一个带有路径的文件。我一直在使用where 。我一直在寻找的非目录版本,但是却找不到任何东西。是否有类似这样的工具可以创建文件而无需打开文件,也无需使用系统或popen /subprocess? 问题答案: 有没有方法来创建,而无需打开文件时,它 有( 但它需要在OSX root权限 )。创建文件的系统调用实际上带有该标志。因此,无论如何,您将始终打开文件。 因