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?