簡體   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