Python【每日一问】03
问:请给出下列代码的执行结果,并解释
a = dict.fromkeys([6, 7, 8], ["testing", {"name": "ken"},123]) print(a) a[7][1]["name"] = "sucy" print(a)
答:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。{6: ['testing', {'name': 'ken'}, 123], 7: ['testing', {'name': 'ken'}, 123], 8: ['testing', {'name': 'ken'}, 123]} {6: ['testing', {'name': 'sucy'}, 123], 7: ['testing', {'name': 'sucy'}, 123], 8: ['testing', {'name': 'sucy'}, 123]}
解释原因:
(1)fromkeys() 方法用于创建一个新的字典,以可迭代对象((字符串、列表、元祖、字典))中的元素分别作为字典中的键,所有键对应同一个值,默认为None
(2)fromkeys() 方法语法:
dict.fromkeys(iterable[,value=None])
iterable 就是用于创建新的字典的键的可迭代对象
value 是一个可选参数,如果不设置的话就是None
a = dict.fromkeys([6, 7, 8], ["testing", {"name": "ken"},123])
这个例子中 就把 ["testing", {"name": "ken"},123] 这个列表作为 value
由于所有键对应同一个值,当使用 a[7][1]["name"] = "sucy" 改变值时,所有键对应的值都改变了
(3)fromkeys() 方法 的返回结果是一个新的字典

更多精彩