我认为[]和list()是创建列表的两种相同方式。但是如果你想要一个带字典键的列表,
var = [a_dict.keys()]
由于type(var)
为[dict_keys]
,无效,正确的语法为:
var = list(a_dict.keys())
我找不到关于这种行为的好解释。你有吗?
答案 0 :(得分:2)
a_dict.keys()
是dictionary view object,它返回一个对象,可以迭代该对象以生成a_dict
的键。所以这一行:
[a_dict.keys()]
在python中说“我正在制作一个包含一个元素的列表”,而且一个元素是dict键迭代器。它是语法中的列表文字。
现在这一行:
list(a_dict.keys())
是对list
内置函数的调用。此函数list
尝试迭代参数并生成列表。它是语法中的函数调用。
等效列表文字(实际上是列表理解)将改为:
[key for key in a_dict.keys()]
希望这有帮助
答案 1 :(得分:1)
[a_dict.keys()]
这个将一个元素放在列表中。就像你要写[1]。在这种情况下,一个元素将成为一个列表。
list(a_dict.keys())
构造函数接受一个序列,并将序列的所有元素添加到容器中。