python list和函数之间的复制和原地址修改问题

def change(a):
    a.pop()          #自带的方法都是原地址修改
a=[3,4,65]
change(a)
print (a)#直接修改了3.




def change(a):
    a=[2,4,65,99]   #复制操作也是一次拷贝,也慢,不修改原地址
a=[3,4,65]
change(a)
print (a)#没有修改a

                  
def change(a):
    a=a[:-1]   #切片的本质是进行了一次复制,所以切片运算很慢
a=[3,4,65]
change(a)
print (a)#没有修改a

def change(a):
    a[0]=999999   #index操作修改原地址
a=[3,4,65]
change(a)
print (a)#直接修改了a

def change(a):
    a=set(a)   #set()也不修改原地址
a=[3,4,65,4,4,4,4]
change(a)
print (a)#直接修改了a
View Code
原文地址:https://www.cnblogs.com/zhangbo2008/p/8525838.html