我在窗口10中使用Spyder 4.1.2,运行下面的代码行:
dict = {"Name": "Zara", "Age": 7}
print("Value: %s" % dict.keys())
我希望输出为列表:
['Name', 'Age']
但是输出是
dict_keys(['Name', 'Age'])
谁能告诉我为什么?我该如何解决?
答案 0 :(得分:1)
您只需要将代码更改为
dict = {"Name": "Zara", "Age": 7}
print("Value: %s" % list(dict.keys()))
答案 1 :(得分:1)
谁能告诉我为什么?
在Python 3中,dict.keys()
返回一个dict_keys
对象,该对象实际上是该字典的视图对象,而不是list
对象。这就是为什么您看不到它作为常规列表打印的原因。
由
dict.keys()
,dict.values()
和dict.items()
返回的对象是视图对象。它们提供了字典条目的动态视图,这意味着当字典发生更改时,视图将反映这些更改。
可以迭代字典视图以产生其各自的数据,并支持成员资格测试[...]
我该如何解决?
您可以按照回答here将dict
直接转换为list
:
my_dict = {"Name": "Zara", "Age": 7}
print("Value: %s" % list(my_dict))
请注意,我将dict
的名称替换为my_dict
。强烈建议避免隐藏名称,特别是内置在dict
中的名称。