小小羊yky 发表于 2023-8-8 12:26:07

>>> A=*3
>>> for i in range(3):
          A=A

       
>>> A
[[...], [...], [...]]


各位大神,求解,这是为什么

小小羊yky 发表于 2023-8-8 13:31:07

小小羊yky 发表于 2023-8-8 12:26
>>> A=*3
>>> for i in range(3):
          A=A


看完第023讲的课后答案,我似乎懂了

137430724 发表于 2023-9-27 17:57:19

>>> a=-6
>>> b=-6
>>> c=-5
>>> d=-5
>>> e=256
>>> f=256
>>> g=257
>>> h=257
>>> id(a);id(b);id(c);id(d);id(e);id(f);id(g);id(h);
48351984
48352016
8790360089040
8790360089040
8790360097392
8790360097392
48352048
48352080
>>> a is b;c is d;e is f;g is h
False
True
True
False
>>> a==b;c==d;e==f;g==h
True
True
True
True

137430724 发表于 2023-9-27 18:06:01

小小羊yky 发表于 2023-8-8 12:26
>>> A=*3
>>> for i in range(3):
          A=A


[...] 为什么会出现这个呢

song_han 发表于 2024-7-11 20:04:10

{:5_106:}

JTYBLCC 发表于 2024-7-18 17:34:07

学完打卡

sunshine_8205 发表于 2024-12-3 11:23:16

{:5_108:}

cc372553975 发表于 2024-12-10 10:58:07

zdasd 发表于 2021-4-7 10:20
**1.列表的加法和乘法**

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


好人啊

YOVS 发表于 2024-12-18 20:44:51

本帖最后由 YOVS 于 2024-12-18 20:51 编辑

大毛不困 发表于 2020-9-10 21:01
还是不懂 A = [ * 3] * 3 为什么不行。
A is B == True 意思是 A 和 B 是同一个对象?存储地址相同?改 ...

我也试了感觉很奇怪,好像每次储存单个一样的数字(数字比较常规)的时候,id地址也是一样的:导致is比较的变量如果指向同一个数字,is的功能就类似==;比较一串列表的时候就正常了。

如果定义 a=10、b=10, 然后再对比 a is b 会发现返回的结果是 True,这是因为在 Python 中会实现创建一个小型的整形池,范围为 [-5,256],为这些整形开辟好内存空间,当代码中定义该范围内的整形时,不会再重新分配内存地址。

紫藤竹轩 发表于 2024-12-25 08:45:21

有些大咖讲的很明白,有些越看越迷茫。

戰戰 发表于 2024-12-30 09:20:38

打卡

万恶的亚撒西 发表于 2025-5-29 10:32:20

学习学习--20250529

知情识趣 发表于 2025-7-20 17:06:23

学习打卡:补充is概念

is运算符用于比较两个对象的身份(identity)​,即判断它们是否引用内存中的同一个对象(内存地址是否相同)。
身份(identity):每个对象在创建时会被分配唯一的id(内存地址),可通过id(obj)查看。

与==的区别:
1. == 比较值是否相等;(调用对象的__eq__方法)。
2. is 比较内存地址是否相同;(id(a) == id(b))
页: 1 2 3 [4]
查看完整版本: 第022讲:列表(IV)