鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[知识点备忘] 第022讲:列表(IV)

[复制链接]
发表于 2021-5-17 15:21:20 | 显示全部楼层
零基础入门学习Python封面
《零基础入门学习Python》
(最新版)
小甲鱼 著
立即购买
zdasd 发表于 2021-4-7 10:20
**1.列表的加法和乘法**

列表的加法是拼接,要求加号两边都是列表。

码主
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-6-20 10:31:31 | 显示全部楼层
大毛不困 发表于 2020-9-10 21:01
还是不懂 A = [[0] * 3] * 3 为什么不行。
A is B == True 意思是 A 和 B 是同一个对象?存储地址相同?改 ...

因为A[0]和A[1]为只读数据类型,当A[0] = 0,A[1] = 0时,python解释器会“偷懒”,将变量名A[0],A[1]共同绑定在一个0这个整数上,而不是一个变量名绑定一个0,所以A[0] is A[1]为True,但当A[0](或A[1)]重新赋不与原来相同的值时,A[0](或A[1])将重新绑定一个新的值,所以此时A[0]与A[1]是分别指向不同值的对象,此时id(A[0])!=id(A[1]),之前的id(A[0])==id(A[1])的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 3 反对 0

使用道具 举报

发表于 2021-7-23 16:19:30 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-8-10 13:56:28 | 显示全部楼层
打卡022
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2021-8-10 20:10:15 | 显示全部楼层
已复习,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2021-9-10 15:24:03 | 显示全部楼层
厉害了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2021-10-8 15:21:18 | 显示全部楼层
绘梨衣forever 发表于 2021-3-18 15:52
is ,当成==是不是就能理解了?

好像不一样吧。is是用于检验两个变量是否指向同个对象(也就是存储的位置是否相同),==是判断两边的值(数据)是否相等。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-26 09:35:24 | 显示全部楼层
大毛不困 发表于 2020-9-10 21:01
还是不懂 A = [[0] * 3] * 3 为什么不行。
A is B == True 意思是 A 和 B 是同一个对象?存储地址相同?改 ...

你这个只是单个列表,所以这样该就没什么问题,举个栗子:如果你的列表是二维列表,你去试试,它里面嵌套同一个二维列表的同一个索引值便会有所不同,
   A = [[0,0,0], [0,0,0], [0,0,0]]:(假设我这个列表是通过“A = [0] * 3”),这种形式创建出来的则会表现出这种情况:A[0] = 1
         A[[1,0,0], [1,0,0], [1,0,0]]

  
   
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-16 06:24:59 | 显示全部楼层
本帖最后由 是阿佳! 于 2021-12-16 06:31 编辑

试图通过乘号对一个嵌套列表进行拷贝,事实上拷贝的是对同一个列表的引用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-12-16 06:31:09 | 显示全部楼层
是阿佳! 发表于 2021-12-16 06:24
试图通过乘号对一个嵌套列表进行拷贝,事实上拷贝的是对同一个列表的应用

  1. #正确做法初始化列表
  2. A = [0,0,0]
  3. for i in range(3):

  4.     #这是把[0,0,0]的每个元素赋值为[0]*3,即是赋值为[0,0,0]
  5.     A[i] = [0] * 3
  6. print(A)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-10 10:06:28 | 显示全部楼层
本帖最后由 yangshengyang 于 2022-2-10 10:53 编辑

看视频明白了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-24 10:55:07 | 显示全部楼层
打卡~~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-3-2 19:49:06 | 显示全部楼层
大毛不困 发表于 2020-9-10 21:01
还是不懂 A = [[0] * 3] * 3 为什么不行。
A is B == True 意思是 A 和 B 是同一个对象?存储地址相同?改 ...

应该就是存储地址相同
A[0] A[1]存在同一个地方 所以是True
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-14 22:49:15 | 显示全部楼层
打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-3-26 11:04:43 | 显示全部楼层
大毛不困 发表于 2020-9-10 21:01
还是不懂 A = [[0] * 3] * 3 为什么不行。
A is B == True 意思是 A 和 B 是同一个对象?存储地址相同?改 ...

试了下,两个存储地址不同,不算同一个值
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-10 11:12:02 | 显示全部楼层
打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-4-17 22:08:23 | 显示全部楼层
打卡冲
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-6 08:41:37 | 显示全部楼层
大家自己试试看a=257,b=257时它们的id还是否会相等。事实上Python 为了优化速度,使用了小整数对象池,避免为整数频繁申请和销毁内存空间。而Python 对小整数的定义是 [-5, 257),只有数字在-5到256之间它们的id才会相等,超过了这个范围就不行了,同样的道理,字符串对象也有一个类似的缓冲池,超过区间范围内自然不会相等了。

总的来说,只有数值型和字符串型,并且在通用对象池中的情况下,a is b才为True,否则当a和b是int,str,tuple,list,dict或set型时,a is b均为False。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-6 17:41:33 | 显示全部楼层
大家都能看懂吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-19 19:57:44 | 显示全部楼层
打卡
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-26 06:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表