【问题标题】:Python; Get the length of a dictionary as a value in the dictionaryPython;获取字典的长度作为字典中的值
【发布时间】:2019-08-25 11:45:44
【问题描述】:

我会在我的字典中添加一个包含字典长度的值,例如:

所以我基本上试过了

{..., 'commands' : len(dict) + ' commands are available'}

但它返回给我NameError: name 'dict' is not defined

我也试过了

def dict_len():
     return len(dict)
{..., 'commands' : dict_len() + ' commands are available'}

还有:NameError: name 'dict' is not defined

我该如何解决这个问题?

【问题讨论】:

  • 两次尝试的问题是您没有名称为dict 的变量(字典或其他)。如果您指的是键的数量,请尝试len(d),其中d 实际上是dict 变量的名称。
  • 但是为什么呢?如果您需要字典具有业务逻辑,您可能应该使用 object 代替。如果您希望在修改字典时更改 d['commands'] 中的长度,则尤其如此。
  • 这里的 dict 名称是 'dict' 以使其简单,但我明白了
  • 其他人已经为你给出了正确的答案,但我想指出这是一个坏主意,因为 dict 中的长度数据很容易过时。太容易在字典中添加另一个条目而忘记更新长度计数器。
  • 是的,但是这里的 dict 仅用于包含很多功能并避免很长的 elif 结构

标签: python dictionary python-3.6


【解决方案1】:

首先,不要使用dict作为变量名,它已经是一个类所以不要覆盖它。

其次,你想如何做到这一点是首先像这样保存你的字典

my_dict = {...} # put whatever values you have in here

那就做吧

my_dict["commands"] = str(len(my_dict)) + " commands are available"

【讨论】:

  • 是的!谢谢你
  • @Edhyjox 如果它适合您,请不要忘记接受答案:)
  • 例如我使用 'dict' 名称并且更简单
  • 是的,但我还有 8 分钟的等待时间才能接受
【解决方案2】:

你没有将参数传递给你定义的函数

def len_dict(dict):
       return len(dict)

这就是你必须使用函数的方式。

我认为你需要了解python的基础知识。

【讨论】:

  • 你不应该使用dict作为变量名,因为它已经是dict类的名字
  • 不是dict,这里是例子
  • @PraveenSms,如果我这样做,我会得到 NameError
猜你喜欢
  • 2013-06-12
  • 2012-03-03
  • 1970-01-01
  • 2013-08-22
  • 1970-01-01
  • 2022-11-13
  • 2015-03-18
  • 2020-07-07
  • 1970-01-01
相关资源
最近更新 更多