注册 登录
编程论坛 Python论坛

新手求助,两个问题,望大佬解答,感谢

部埠 发布于 2021-11-14 12:24, 1544 次点击
1,若有 l1 = [2,3,4],试说明下面两个语句有何不同。     l2 = l1     l2 = l1[:]?
2,说明表达式2*['a']+['c']*3的值,解释该表达式用到哪些列表操作?
5 回复
#2
古1232021-11-14 15:45
第一个问题:
l2=l1 创建一个标签指向l1数据的地址。
l2=l1[:]新建并复制l1数据
比如下面一段代码
程序代码:

l1 = [2,3,4]

l2 = l1
l3 = l1[:]
print(f'l1:{id(l1)}')
print(f'l2:{id(l2)}')
print(f'l3:{id(l3)}')

可以看到结果l2和l1的地址是一样的
只有本站会员才能查看附件,请 登录


使用两种方法得到l2,l3之后,修改l1的数据
程序代码:
l1 = [2,3,4]

l2 = l1
l3 = l1[:]

print(l2)
print(l3)
print('----')
l1[1] = 10
print(l2)
print(l3)


只有本站会员才能查看附件,请 登录


修改l1的数据l2也会改变,因为l2和l1指向内存同一块地方
#3
部埠2021-11-14 16:45
回复 楼主 部埠
感谢大佬不吝赐教,第二小问能否再给予答疑
#4
古1232021-11-14 17:40
回复 3楼 部埠
第二个
2*['a']得到['a','a'],不知道有啥术语,刚才也没找到
+的话是合并
#5
sssooosss2021-11-15 16:29
共同学习
#6
风卷浪起2021-11-26 22:07
共同进步!
1