小小羊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 发表于 4 天前

本帖最后由 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],为这些整形开辟好内存空间,当代码中定义该范围内的整形时,不会再重新分配内存地址。
页: 1 2 3 [4]
查看完整版本: 第022讲:列表(IV)