簡體   English   中英

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

[英]How do we change the indexes of a list without changing the original list on python?

我試圖在不更改 python 中原始列表的元素的情況下將 2 添加到列表的元素中。 我使用了 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]

任何人都可以幫助我嗎?

List 是一種可變數據類型。 如果您想在不更改原始文件的情況下對其進行操作,則應將該列表的副本傳遞給 function 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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM