【发布时间】:2026-02-16 00:50:01
【问题描述】:
我正在尝试制作一些东西,让我可以用单个项目替换列表中的所有其他位置:
l = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
l[::2] = "A"
print(l)
我期待这样的事情:
["A", 1, "A," 3, "A", 5, "A", 7, "A", 9, "A"]
我尝试了索引[::] 的不同位置,但要么得到错误,要么得到的结果不包括列表的其余部分。
相反,我得到了这个:
ValueError: attempt to assign sequence of size 1 to extended slice of size 2
【问题讨论】:
-
l[::2] = ['A']*(len(l)//2)会做到的。 numpy 可以进行广播,但 Python 要求列表大小相同。 -
为什么会从奇数元素切换到偶数元素?
-
我猜你的预期输出是 ['A', 1, 'A', 3, 'A', 5, 'A', 7, 'A', 9, 'A']。 l[::2] = ["A"] * math.ceil(len(l)/2)
-
@Barmar 开关是一个错字另外,谢谢你们的帮助!