本帖最后由 抬头吧奔跑吧Q 于 2022-8-4 22:57 编辑
你是对的,题目答案应该是有问题的。
应该是
1.dict1 = dict1.fromkeys((1,2,3),('o','t','th'))
2.dict1 = dict1.fromkeys((1,3),'数字')
这样子才是体现出 小甲鱼老师的目的,即fromkeys方法是直接创建新的字典,并不是直接修改字典的值。
也少了第一步,即dict1初始应指向空字典。
上面的1.是利用fromkeys方法创建了一个字典{1: ('o', 't', 'th'), 2: ('o', 't', 'th'), 3: ('o', 't', 'th')},并将指向它的地址赋给了dict1
然后2的时候,同样是利用fromkeys方法创建了另外一个字典{1: '数字', 3: '数字'},并将指向它的地址再赋给了dict1,也就是取代了1,所以看起来就像是直接无情覆盖了字典。
个人见解哈。。
-----
>>> dict1 = dict1.fromkeys((1,3),'数字')
>>> dict1
{1: '数字', 3: '数字'}
>>> id(dict1)
1639757450112
>>> dict1[1]='阿拉蕾'
>>> dict1
{1: '阿拉蕾', 3: '数字'}
>>> id(dict1)
1639757450112
>>> dict1 = dict1.fromkeys((1,2,3),('o','t','th'))
>>> dict1
{1: ('o', 't', 'th'), 2: ('o', 't', 'th'), 3: ('o', 't', 'th')}
>>> id(dict1)
1639756529344
>>> 刚刚试了一下,好像证明了自己的想法