[英]Unexpected output when printing dictionary keys
我在 window 10 中使用 Spyder 4.1.2,我运行了以下代码行:
dict = {"Name": "Zara", "Age": 7}
print("Value: %s" % dict.keys())
我希望 output 作为一个列表:
['Name', 'Age']
但是 output 是
dict_keys(['Name', 'Age'])
谁能告诉我为什么? 我如何解决它?
您只需将代码更改为
dict = {"Name": "Zara", "Age": 7}
print("Value: %s" % list(dict.keys()))
谁能告诉我为什么?
In Python 3 dict.keys()
is returning a dict_keys
object which is actually a view object of that dict, and not a list
object. 这就是为什么您看不到它打印为常规列表的原因。
从官方文档:
dict.keys()
、 dict.values(dict.values()
和dict.items()
返回的对象是视图对象。 它们提供字典条目的动态视图,这意味着当字典更改时,视图会反映这些更改。
可以迭代字典视图以产生它们各自的数据,并支持成员资格测试 [...]
我如何解决它?
您可以直接将dict
转换为list
,如下所示:
my_dict = {"Name": "Zara", "Age": 7}
print("Value: %s" % list(my_dict))
请注意,我将dict
name 替换为my_dict
。 强烈建议避免隐藏名称,特别是内置名称dict
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.