繁体   English   中英

打印字典键时出现意外的 output

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM