list经过append,[:],函数后的地址变化 [python]

PYTHON

列表list

地址

list经过截取操作list=list[1:]后是一个新的地址

lsit的append()不改变地址

list传入函数,函数中的list是传入前的地址,函数传出的也是地址

def a(l:list):
    print('l传入函数a后的地址',id(l))
    print(l)
    l.append(6) #  不改变地址
    print('l增加元素后的地址a',id(l))
    print(l)
    return l
def b(l:list):
    print('l传入函数后的地址',id(l))
    print(l)
    l=l[1:] #  改变地址
    print('l截取',id(l))
    print(l)
    return l

l=[1,2,3,4,4,4,4]
print('l的初始地址',id(l))
print(l)

l.append(5) #  不改变地址
print('l增加元素后的地址',id(l))
print(l)

l=l[1:] #  改变地址
print('l截取',id(l))
print(l)

a(l) #  传入不改变地址  不接收传出不改变传出的l地址
print('函数a不接收处理后的l的地址',id(l))
print(l)

l=a(l) #  传入不改变地址  接收传出不改变传出的l的地址
print('函数a接收处理后的l的地址',id(l))
print(l)

b(l) #  传入不改变地址  不接收传出不改变传出的l地址
print('函数b不接收处理后的l的地址',id(l))
print(l)

l=b(l) #  传入不改变地址  接收传出不改变传出的l的地址
print('函数b接收处理后的l的地址',id(l))
print(l)

 

l的初始地址 1975418364160
[1, 2, 3, 4, 4, 4, 4]
l增加元素后的地址 1975418364160
[1, 2, 3, 4, 4, 4, 4, 5]
l截取 1975419633024
[2, 3, 4, 4, 4, 4, 5]
l传入函数a后的地址 1975419633024
[2, 3, 4, 4, 4, 4, 5]
l增加元素后的地址a 1975419633024
[2, 3, 4, 4, 4, 4, 5, 6]
函数a不接收处理后的l的地址 1975419633024
[2, 3, 4, 4, 4, 4, 5, 6]
l传入函数a后的地址 1975419633024
[2, 3, 4, 4, 4, 4, 5, 6]
l增加元素后的地址a 1975419633024
[2, 3, 4, 4, 4, 4, 5, 6, 6]
函数a接收处理后的l的地址 1975419633024
[2, 3, 4, 4, 4, 4, 5, 6, 6]
l传入函数后的地址 1975419633024
[2, 3, 4, 4, 4, 4, 5, 6, 6]
l截取 1975418364160
[3, 4, 4, 4, 4, 5, 6, 6]
函数b不接收处理后的l的地址 1975419633024
[2, 3, 4, 4, 4, 4, 5, 6, 6]
l传入函数后的地址 1975419633024
[2, 3, 4, 4, 4, 4, 5, 6, 6]
l截取 1975418364160
[3, 4, 4, 4, 4, 5, 6, 6]
函数b接收处理后的l的地址 1975418364160
[3, 4, 4, 4, 4, 5, 6, 6]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值