【问题标题】:Why does this Python list of dictionary only have the keys of the dictionary?为什么这个 Python 字典列表只有字典的键?
【发布时间】:2013-08-31 15:49:23
【问题描述】:

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

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

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

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

【问题讨论】:

  • 请注意list(x)[x] 不同。
  • 这是一个合理的问题,不应被否决。

标签: python list dictionary data-structures python-import


【解决方案1】:

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

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

可能你想这样定义users

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

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

【讨论】:

  • 不,可能他想要[{'username': 'x', 'password': 'y'}]
【解决方案2】:

尝试:

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

如果你想拥有字典数组。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      [dict(username='test')]
      

      【讨论】:

        【解决方案5】:

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

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

        里面有一些你可以使用的功能:

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

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

        dictionary.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) ]
        

        【讨论】:

          猜你喜欢
          • 2014-01-13
          • 2022-01-23
          • 2022-07-05
          • 2019-06-24
          • 1970-01-01
          • 2021-01-19
          • 2015-12-21
          • 2022-06-23
          • 2023-02-09
          相关资源
          最近更新 更多