4

我写了一个模块,它作为一个配置文件:

users = list(
             dict(
                  username="x",
                  password="y"
                  )
             )

但是,当我检查列表的导入内容时,它包含字典的键,而不是字典条目:

>>> import user as userdata
import user as userdata
>>> userdata.users
userdata.users
['username', 'password']
>>> 
4

5 回答 5

4

您不是在制作字典列表,而是从字典中制作字典键列表,list(dict(...))返回键列表:

>>> d = dict(username="x", password="y")
>>> list(d)
['username', 'password']

可能你想这样定义users

users = [dict(username="x", password="y")]

或者

users = [{'username': 'x', 'password': 'y'}]
于 2013-08-28T14:04:25.100 回答
1

这是因为当您调用list字典时,它会创建一个仅包含您的键的新列表,这与使用yourdictionary.keys().

于 2013-08-28T14:04:34.820 回答
1

您正在从字典创建列表。列表构造函数将遍历 dict,它只给出键。

如果你想要一个包含 dict 作为一个元素的列表,你可以使用:

[dict(username='test')]
于 2013-08-28T14:05:50.837 回答
0

尝试:

 users = [dict(username="x",password="y")]
 print users

如果你想拥有字典数组。

于 2013-08-28T14:04:25.960 回答
0

我不明白dict( )当你可以简单地使用时你为什么要使用{ }..

你知道字典的功能吗?如果没有,我建议您尝试该dir()功能。

您可以使用其中的一些功能:

字典。keys(),返回字典中所有键的列表。

字典。values(), 返回字典中所有值的列表。

字典。items(), 返回一个列表,其中每个单元格中有 2 个“变量”,[0]=key,[1]=value

例子:

d = { "First":1, "Second":2 }
d.keys()
>> [ "First", "Second" ]
d.values()
>> [ 1, 2 ]
d.items()
>> [ ("First", 1), ("Second", 2) ]
于 2013-08-28T14:20:03.133 回答