gpt4 book ai didi

python - 如何在不创建新元素的情况下更改列表中的 n 个连续元素?

转载 作者:行者123 更新时间:2023-11-28 20:38:48 24 4
gpt4 key购买 nike

基本上,我必须使用函数以更改 n 个连续元素的方式修改列表。但是,问题是我无法返回列表(该函数实际上无法返回任何内容),因此据我了解,我无法创建新列表,因为这不会更改我通过函数参数获得的列表。

我用这样的 while 循环完成了它:

while i < length:
my_list[index+i] = element
i += 1

我想知道是否有任何其他解决方案,类似于列表理解或类似的解决方案。我是 Python 的新手,所以这纯粹是为了探索目的。

最佳答案

您可以为此使用切片赋值:

my_list[index:index + length] = (e for _ in range(length)) # or (e,) * length

上面的代码将 [index, index + length) 区间内的 my_list 元素替换为右侧可迭代的元素任务。请注意,切片的长度和可迭代对象的长度必须匹配。否则,一些元素将被删除(如果 iterable 更短)或添加更多元素(如果 iterable 更长)。

例子:

In [14]: my_list = [1, 2, 3, 4, 5, 6]

In [15]: index, length, element = 1, 3, 0

In [16]: my_list[index:index + length] = (element for _ in range(length))

In [17]: my_list
Out[17]: [1, 0, 0, 0, 5, 6]

关于python - 如何在不创建新元素的情况下更改列表中的 n 个连续元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40318519/

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