Python 在两点之间更改列表中的值

Python 在两点之间更改列表中的值,python,Python,我有一张单子 list = [3, 3, 3,..., 3] 并且只希望更改点A(列表[0])和点B(列表[-1])之间的元素值 所以 因此,逻辑是,我们将保持btwlower\uu和btwupper\u索引的完整性list\u,并用replace\u替换所有其他索引。这可以通过采取我们想要更新的部分来实现: list_[btwlower_: btwupper_]] 代码: list_ = [3, 3, 3,..., 3] def func(list_, replace_, btwlowe

我有一张单子

list = [3, 3, 3,..., 3]
并且只希望更改点A(列表[0])和点B(列表[-1])之间的元素值

所以


因此,逻辑是,我们将保持
btwlower\uu
btwupper\u
索引的完整性
list\u
,并用
replace\u
替换所有其他索引。这可以通过采取我们想要更新的部分来实现:

list_[btwlower_: btwupper_]]
代码:

list_ = [3, 3, 3,..., 3]

def func(list_, replace_, btwlower_, btwupper_):
    l = [replace_ for i in list_[btwlower_: btwupper_]]
    return [list_[btwlower_]] + l + [list_[btwupper_]]

print(func(list_, 2, 1, -1))
[3, 2, 2, 2, 3]
输出:

list_ = [3, 3, 3,..., 3]

def func(list_, replace_, btwlower_, btwupper_):
    l = [replace_ for i in list_[btwlower_: btwupper_]]
    return [list_[btwlower_]] + l + [list_[btwupper_]]

print(func(list_, 2, 1, -1))
[3, 2, 2, 2, 3]

您可以通过指定给切片来更改子列表,例如:

L = [3, 3, 3, 3, 3]
L[1:-1] = [2] * (len(L) - 2)
或:


为了避免中间列表-我收回它,正如@juanpa.arrivillaga所注意到的,它无论如何都会生成一个列表。

试试这段代码,它会动态工作

def function(ls,n,place1,place2):
     a = []
     for i in range(len(ls)):
          if place1!=i and place2 !=i:
               a.append(n)
          else:
               a.append(ls[i])
     return a

所以您需要更改所有元素的值?因为列表[0]是第一项,列表[-1]是最后一项,它们之间的元素都是元素,请编辑您的问题并添加更多信息以帮助您。@正如示例所确认的,0和-1之间的GiorgiImerlishvili是除第一项和最后一项之外的所有内容。您尝试了什么?请注意,它实际上不会避免中间列表,
list.\uuuuu setitem\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?