当前位置:  开发笔记 > 编程语言 > 正文

Python函数没有修改传递给它的列表

如何解决《Python函数没有修改传递给它的列表》经验,为你挑选了1个好方法。

该函数不会修改,x因为它将名称重新分配mylist给新值.替代方案将是令人惊讶的.

a = 1
b = a
b = 2
assert a == 1 # would you want a to be 2 here?

如果要替换内容,可以使用切片分配来替换内容

def x(mylist):
    mylist[:] = [ x for x in mylist if x > 5 ]

python中的赋值运算符不会进入任何方法调用.它是名称重新绑定的机制.但是,您可以实现__setitem__方法(同样list),这或多或少是运算符[]=

使用切片赋值,您将__setitem__使用一个slice参数调用"将此列表替换为...",其中...是右侧的=



1> Ryan Haining..:

该函数不会修改,x因为它将名称重新分配mylist给新值.替代方案将是令人惊讶的.

a = 1
b = a
b = 2
assert a == 1 # would you want a to be 2 here?

如果要替换内容,可以使用切片分配来替换内容

def x(mylist):
    mylist[:] = [ x for x in mylist if x > 5 ]

python中的赋值运算符不会进入任何方法调用.它是名称重新绑定的机制.但是,您可以实现__setitem__方法(同样list),这或多或少是运算符[]=

使用切片赋值,您将__setitem__使用一个slice参数调用"将此列表替换为...",其中...是右侧的=

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有