fromkeys方法的意外结果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fromkeys方法的意外结果相关的知识,希望对你有一定的参考价值。
我是Python的新手,正在学习它的基础知识。
我遇到了这段代码:
keys = {'a', 'e', 'i', 'o', 'u' }
vowels = dict.fromkeys(keys)
print(vowels)
我的期望是输出将像:
{'a': None, 'e': None, 'i': None, 'o': None, 'u': None}
但是当我在pyCharm中执行这段代码时,得到的结果如下:
{'u': None, 'o': None, 'e': None, 'a': None, 'i': None}
[请帮助我了解此处发生的情况。它背后有逻辑吗?
编辑1(在对问题进行初步评论后:
我的理解如下:
当创建字典'keys'时,将按该键序列分配存储块,并带有下一个成员块的地址(如链接列表)。
当执行'fromkeys'方法时,它将遵循相同的模式并获得一个克隆。
答案
但是当将键用作list
或tuple
对象时,您会得到想要的:keys = ['a', 'e', 'i', 'o', 'u']
vowels = dict.fromkeys(keys)
print(vowels)
#{'a': None, 'e': None, 'i': None, 'o': None, 'u': None}
以上是关于fromkeys方法的意外结果的主要内容,如果未能解决你的问题,请参考以下文章