Python 如何就地修改列表

Python 如何就地修改列表,python,python-3.x,Python,Python 3.x,我想向列表中的每个元素添加1,而不创建新元素 i = [1,2,3,4,5] for each in i: i[i.index(each)] = each+1 print(i) 但是它像这样返回 [6,2,3,4,5] 似乎在第一个元素中添加了一个。但我想为每个元素添加一个。尝试使用列表的len的范围 Ex: i = [1,2,3,4,5] for each in range(len(i)): i[each]= i[each]+1 print(i) [2, 3, 4, 5,

我想向列表中的每个元素添加1,而不创建新元素

i = [1,2,3,4,5]
for each in i:
    i[i.index(each)] = each+1
print(i)
但是它像这样返回

[6,2,3,4,5]

似乎在第一个元素中添加了一个。但我想为每个元素添加一个。

尝试使用列表的len的
范围

Ex:

i = [1,2,3,4,5]
for each in range(len(i)):
    i[each]= i[each]+1
print(i)
[2, 3, 4, 5, 6]
输出:

i = [1,2,3,4,5]
for each in range(len(i)):
    i[each]= i[each]+1
print(i)
[2, 3, 4, 5, 6]

尝试使用列表长度的
范围

Ex:

i = [1,2,3,4,5]
for each in range(len(i)):
    i[each]= i[each]+1
print(i)
[2, 3, 4, 5, 6]
输出:

i = [1,2,3,4,5]
for each in range(len(i)):
    i[each]= i[each]+1
print(i)
[2, 3, 4, 5, 6]

在下一次递增1之后,i.index(each)在本例中始终返回第一个元素

for idx in range(len(i)):i[idx]+=1

在下一次递增1之后,i.index(each)在本例中始终返回第一个元素

for idx in range(len(i)):i[idx]+=1
输出

[2, 3, 4, 5, 6]
输出

[2, 3, 4, 5, 6]

@不,你一点也不知道。列表是可变的。@dupe不回答这个问题。OP不想创建一个新的列表对象,他们想修改一个现有的列表对象。dupe target回答了这个问题,但(奇怪的)创建了一个新的列表。@jedwards我不同意。仅仅因为结果在数字上是相同的并不意味着它回答了问题,因为OP在“…在列表中没有创建新的”中是明确的@roganjosh抱歉,我不清楚我的“回答问题”。我同意这不是一个很好的欺骗目标。@zimdero不,你一点也不。列表是可变的。@dupe不回答这个问题。OP不想创建一个新的列表对象,他们想修改一个现有的列表对象。dupe target回答了这个问题,但(奇怪的)创建了一个新的列表。@jedwards我不同意。仅仅因为结果在数字上是相同的并不意味着它回答了问题,因为OP在“…在列表中没有创建新的”中是明确的@roganjosh抱歉,我不清楚我的“回答问题”。我同意这不是一个很好的dupe目标。Down-voter你能告诉我这是不是一个错误的方法吗?我不是Down-voter,但你可以打赌,你已经因为使用C风格的循环(
表示范围内的索引(len(seq))
)而被Down-voter,而不是更惯用的
表示索引,枚举中的项(seq)
。我的2美分……哦,好吧……我没有使用
枚举
,因为我认为这对于这个任务来说……是不必要的。我想我错了。无论如何,谢谢你:)。我在stackoverflow中学到了很多编码:)。Down voter你能告诉我这是不是错误的方法吗?我不是Down voter,但你可以打赌你因为使用C风格的循环(
用于范围内的索引(len(seq))
),而不是更惯用的
用于索引,枚举中的项(seq)
。我的2美分……哦,好吧……我没有使用
枚举
,因为我认为这对于这个任务来说……是不必要的。我想我错了。无论如何,谢谢你:)。我在stackoverflow中学到了很多代码:)。