如下面的代码所示,我有一个块列表x
和完整列表h
。我想将x
中存储的值重新分配到h
的正确位置。
index = 0
for t1 in range(lbp, ubp):
h[4 + t1] = x[index]
index = index + 1
是否有人知道如何在单行/表达中编写它?
免责声明:这是一个更大项目的一部分,我尽可能地简化了问题。您可以预期矩阵大小是正确的,但如果您认为我遗漏了某些东西,请提出要求。对于测试,您可以使用以下变量值:
h = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x = [20, 21]
lbp = 2
ubp = 4
答案 0 :(得分:2)
您可以使用切片分配在左侧展开,并将x
列表直接指定给h
的索引,例如:
h = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x = [20, 21]
lbp = 2
ubp = 4
h[4 + lbp:4 + ubp] = x # or better yet h[4 + lbp:4 + lbp + len(x)] = x
print(h)
# [1, 2, 3, 4, 5, 6, 20, 21, 9, 10]
我不确定为什么要将4
添加到循环中的索引中,以及lbp
和ubp
应该是什么意思。请记住,当您选择这样的范围时,您指定给该范围的列表必须与范围的长度相同。