gpt4 book ai didi

python - 非连续单行 block 重新分配

转载 作者:行者123 更新时间:2023-12-01 09:24:54 25 4
gpt4 key购买 nike

这是一个后续问题。之前我问过here如何在单行中将 block 列表分配给完整列表。

现在我需要执行相同的分配,但是当对完整列表的访问不连续时。因此,如以下代码所示,我有一个 block 列表 x 和完整列表 h。我想将 x 中存储的值重新分配回 h 的正确位置当 h 未连续访问时。

index = 0
for t1 in range(lbp, ubp):
h[1 + 2*t1] = x[index]
index = index + 1

有人知道如何用单行/表达式编写它吗?

和以前一样,出于测试目的,您可以使用:

h = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x = [20, 21]
lbp = 2
ubp = 4

预期结果是:

h = [1, 2, 3, 4, 5, 20, 7, 21, 9, 10]

免责声明:这是一个更大项目的一部分,我尽可能简化了问题。您可以预期矩阵大小是正确的,但如果您认为我遗漏了某些内容,请询问。

最佳答案

您可以使用切片分配来高效、紧凑地完成此操作。

h = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
x = [20, 21]
lbp = 2
ubp = 4
h[2*lbp + 1: 2*ubp + 1: 2] = x
print(h)

输出

[1, 2, 3, 4, 5, 20, 7, 21, 9, 10]

关于python - 非连续单行 block 重新分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50510097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com