如何在不更改python上的原始列表的情况下更改列表的索引?

2024-05-03 07:12:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在列表的元素中添加2个元素,而不使用 在python中更改原始列表的元素。我使用了append方法,但是当我试图返回原始值时,它也被修改了。 它应该是这样工作的:

>> list1 = [1, 3, 5]
>> add_two(list1)
[3, 5, 7]
>> list1 == [1, 3, 5]
True

然而,我得到的是:

>> list1 = [1, 3, 5]
>> add_two(list1)
[3, 5, 7]
>> list1
[3, 5, 7]

有人能帮我吗


Tags: 方法addtrue元素列表twoappendlist1
1条回答
网友
1楼 · 发布于 2024-05-03 07:12:06

列表是一种可变的数据类型。如果希望在不更改原始列表的情况下对其进行操作,则应将该列表的副本传递给函数add_two()

In [1]: def add_two(lst):
   ...:     lst[2] += 2
   ...:     return lst
   ...:

In [2]: a = [ 1,2,3]

In [3]: add_two(a)
Out[3]: [1, 2, 5]

In [4]: a
Out[4]: [1, 2, 5]

In [5]: add_two(a.copy())
Out[5]: [1, 2, 7]

In [6]: a
Out[6]: [1, 2, 5]

编辑

我知道您希望将每个列表元素增加两个。 然后它是最容易使用列表理解-创建一个新的列表,无需传递副本

def add_two(lst):
     return [v+2 for v in lst]

相关问题 更多 >