gpt4 book ai didi

python:使用remove()按值从列表中删除元素

转载 作者:行者123 更新时间:2023-12-01 04:48:46 25 4
gpt4 key购买 nike

我写了一个简单的脚本如下:

def  simplefunc(listofcolumns):
mylist = listofcolumns
mylist.remove(1)

listofcolumns = [1,2,3,4,5,6]
simplefunc(listofcolumns)
print listofcolumns

我得到的输出是[2,3,4,5,6]。我的问题是,为什么不是 [1,2,3,4,5,6]?我怎样才能做到这一点

这样我就能得到答案[1,2,3,4,5,6]

最佳答案

当您编写 mylist = listofcolumns 时,您并不是在创建新列表。您只需将变量 mylist 指向 listofcolumns 引用的同一列表即可。因此,您对 mylist 或 listofcolumns 所做的任何修改都会修改相同的原始列表。如果您想复制列表以便可以修改它而不弄乱原始列表,则可以使用 .copy() 方法,如下所示:

def  simplefunc(listofcolumns):
mylist = listofcolumns.copy()
mylist.remove(1)

或者您可以像 Kasra 建议的那样,首先不传递原始列表。

正如下面的评论所指出的,.copy() 是 Python 3 的新功能。对于旧版本的 Python,您可以通过对整个列表进行切片来完成相同的操作: def simplefunc(列列表): mylist = 列列表[:] mylist.remove(1)

关于python:使用remove()按值从列表中删除元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28860074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com