繁体   English   中英

为什么这个Python字典列表只有字典的键?

[英]Why does this Python list of dictionary only have the keys of the dictionary?

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

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

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

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

你没有制作一个dicts列表,你正在从字典中创建一个字典键list(dict(...))list(dict(...))返回一个键列表:

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

您可能希望以这种方式定义users

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

要么

users = [{'username': 'x', 'password': 'y'}]

这是因为当你在字典上调用list时,它会生成一个只有你的键的新列表,这与使用yourdictionary.keys()的方法调用相同。

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

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

[dict(username='test')]

试试:

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

如果你想拥有一系列词典。

我不明白为什么你可以简单地使用{ }时使用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) ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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