假设我在Python中有以下空的二维数组:
q = [[None]*5]*4
我想将的值分配5
给的第一列中的第一行q
。本能地,我执行以下操作:
q[0][0] = 5
但是,这会产生:
[[5, None, None, None, None],
[5, None, None, None, None],
[5, None, None, None, None],
[5, None, None, None, None]]
每个 数组的第一个元素 都 被初始化为5
,在这里我认为只有第一个数组的第一个元素会得到更新。我有两个问题:
这没有达到您的期望。
q = [[None]*5]*4
它list
多次重用对象。如您所见,当您对一个单元格进行更改时,该单元格位于重用列表对象中。
值为的单个列表使用了[None]
五次。
单个值为的列表使用了[[None]*5]
四次。
q = [ [ None for i in range(5) ] for j in range(4) ]
可能会更多您想要的东西。
这明确避免了重用列表对象。
80%的时间里,词典是您真正想要的。
q = {}
q[0,0]= 5
也可以。您不必从预定义的None
值网格开始。但是很少需要它们。
在Python 2.7和更高版本中,您可以执行此操作。
q = { (i,j):0 for i in range(5) for j in range(4) }
这将建立一个由2元组索引的网格。
{(0, 1): 0, (1, 2): 0, (3, 2): 0, (0, 0): 0, (3, 3): 0, (3, 0): 0, (3, 1): 0, (2, 1): 0, (0, 2): 0, (2, 0): 0, (1, 3): 0, (2, 3): 0, (4, 3): 0, (2, 2): 0, (1, 0): 0, (4, 2): 0, (0, 3): 0, (4, 1): 0, (1, 1): 0, (4, 0): 0}
当要把一个二维数组中各个数组的和加起来的时候,我已经黔驴技穷了。例如: 函数sumArray可以成功累加 我需要它能够返回另一个数组中有多少数组的总和。原因是因为我需要下一个函数来调用sumArray(): 理论上,sumSort()将根据每个数组中数字的总和对数组进行排序(从最高到最低)。 任何提示都会很棒。提前谢谢你!
我有一个大型多维数组(约1900万个元素),其中包含多个不同属性的联合概率。 数组非常稀疏,我只对概率非零的单元格感兴趣。 但是,在筛选数组中的非零元素时,我无法检索筛选值的维度名称(对应于各种属性值)。 以下是一个玩具示例: 我可以获得与某个标准匹配的单元格的索引值(此处, 但我无法使用上述索引值并找出它们是什么水果组合,因为在查找特定单元格值时,DIMNAME会被删除: 我尝试将数组转换为da
我有一个有4个不同数字的列表,总共10个数字。对于这些数字中的每一个,我想分配一个颜色/单词。因此,问题是,我如何从一个数字列表变成一个颜色列表,其中每个相同的数字都由相同的颜色/单词表示? 初步名单: 预期产出: 我尝试了什么? 我从我的_列表中提取了唯一编号: 现在,我需要从颜色列表中为这4个唯一的数字中的每一个分配一种颜色[‘红色’、‘蓝色’、‘绿色’、‘黑色’、‘黄色’、‘紫色’],然后用
在这种特殊情况下,如何在内部工作?
问题内容: 这是有效的python行为吗?我认为最终结果应为[0,0,0],并且id()函数每次迭代应返回相同的值。如何使其成为pythonic,而不使用枚举或范围(len(bar))? 输出: 问题答案: 首先,您不能重新分配循环变量-可以,但是,这不会更改您要遍历的列表。因此,设置将不会更改列表,而只会更改局部变量(该变量恰好包含每次迭代开始时的迭代值)。 接下来,小数字(例如和)内部保存在小
问题内容: 我想知道如何在Python中声明一个二维数组。 前两个任务工作正常。但是当我尝试做时,出现以下错误: 我在尝试声明二维数组时做任何愚蠢的事情吗? 编辑: 但是我不知道数组(行和列)中的元素数量。 问题答案: 您不会在Python中“声明”数组或其他任何东西。您只需分配一个(新)变量。如果要使用多维数组,只需添加一个新数组作为数组元素。 要么
问题内容: 我有一个无缘无故的多维数组 我想将此数组转换为这种形式 任何想法如何做到这一点? 问题答案: 假设此数组可能是(也可能不是)冗余嵌套,并且您不确定它的深度,可以为您展平它:
问题内容: 这给出了预期的结果 这有效 但是如果我们将其更改为 我收到“ TypeError:无法将复数转换为浮点数”。 如果现在我们省略显式的,我将得到“ ValueError:设置具有序列的数组元素”。 有人可以解释发生了什么,以及如何做到无误吗?我迷路了。 问题答案: 要插入complex或in ,您显然需要将其视为数组,因此可以将其索引或分配给的一个切片: 看来NumPy无法正确处理这种情