在python中向新创建的向量添加元素

在python中向新创建的向量添加元素,python,vector,Python,Vector,我有一个向量,如下所示 vector_partitions = [[4,1,1],[3,2,1],[2,2,2]]. 我想通过修改vector\u分区来创建一个新的向量,方法是将6除以vector\u分区中每个向量元素的每个元素,例如,我的新向量应该是pre\u final=[[1.5,6,6],[2,3,6],[3,3,3] 我为此编写的代码如下: vector_partitions = part(int(x),int(y)) length = len(vector_partitions)

我有一个向量,如下所示

vector_partitions = [[4,1,1],[3,2,1],[2,2,2]].
我想通过修改
vector\u分区来创建一个新的向量,方法是将6除以vector\u分区中每个向量元素的每个元素,例如,我的新向量应该是
pre\u final=[[1.5,6,6],[2,3,6],[3,3,3]

我为此编写的代码如下:

vector_partitions = part(int(x),int(y))

length = len(vector_partitions)

for i in range(0, length):
    length_new_vect = len(vector_partitions[1])
    pre_final = []
    pre_final.extend([int(x)/p for p in vector_partitions[i]])

print(pre_final)

然而,我最终只得到了我的预科期末考试应该是什么的最后一个元素,所以我最终只得到了向量
[3,3,3]
。有人知道我该如何解决这个问题吗?

实际上,您不需要使用
范围
扩展
来解决这个问题。简单地使用列表理解

>>> vector_partitions = [[4, 1, 1], [3, 2, 1], [2, 2, 2]]
>>> pre_final = [[6/i for i in item] for item in vector_partitions]
>>> pre_final
[[1.5, 6.0, 6.0], [2.0, 3.0, 6.0], [3.0, 3.0, 3.0]]

实际上,您不需要使用
range
extend
来执行此操作。简单地使用列表理解

>>> vector_partitions = [[4, 1, 1], [3, 2, 1], [2, 2, 2]]
>>> pre_final = [[6/i for i in item] for item in vector_partitions]
>>> pre_final
[[1.5, 6.0, 6.0], [2.0, 3.0, 6.0], [3.0, 3.0, 3.0]]

在每次迭代中将
[]
分配给
pre_final
,并替换插入的值。您必须在循环外部初始化
pre_final
。您还使用了连接两个列表的
extend
。您需要使用
append
pre_final
的末尾推送新列表。这将修复您的初始代码

pre_final = []
for i in range(len(vector_partitions)):
    pre_final.append([6.0 / x for x in vector_partitions[i]])

在每次迭代中将
[]
分配给
pre_final
,并替换插入的值。您必须在循环外部初始化
pre_final
。您还使用了连接两个列表的
extend
。您需要使用
append
pre_final
的末尾推送新列表。这将修复您的初始代码

pre_final = []
for i in range(len(vector_partitions)):
    pre_final.append([6.0 / x for x in vector_partitions[i]])