当前位置: 首页 > 面试题库 >

如何在Python中为字典对象的所有键设置默认值?

濮阳繁
2023-03-14
问题内容

我知道您可以使用setdefault(key,value)设置给定键的默认值,但是有没有办法在创建字典后将所有键的默认值设置为某个值?

换句话说,我希望字典为我尚未设置的每个键返回指定的默认值。


问题答案:

您可以将旧字典替换为defaultdict

>>> from collections import defaultdict
>>> d = {'foo': 123, 'bar': 456}
>>> d['baz']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'baz'
>>> d = defaultdict(lambda: -1, d)
>>> d['baz']
-1

这里的“技巧”是defaultdict可以用另一个初始化a dict。这意味着您可以保留常规值中的现有值dict

>>> d['foo']
123


 类似资料:
  • 问题内容: 我想结合,并从一个对象,这应是一个有序的,默认情况下dict。 这可能吗? 问题答案: 以下内容(使用此食谱的修改版)对我有用:

  • 问题内容: 这可能是一个愚蠢的问题,但是考虑到以下指示: 我将如何获得此列表: 换句话说,我希望字典中两个键/值对的所有组合都不能替换,而与顺序无关。 问题答案: 一种解决方案是使用: 编辑 :由于受欢迎的需求,这里是Python 3.x版本:

  • 问题内容: 我想像这样从python字典输出键值对: 我以为我可以这样做: 但是很明显,这不是和不争论的方式。 问题答案: 您现有的代码只需进行一些调整。 是 关键,因此您只需要使用它: 您还可以获得包含键和值的迭代器。在Python 2中,返回(键,值)元组的列表,而返回提供相同值的迭代器: 在Python 3中,返回迭代器;要获得列表,您需要将迭代器传递给自己。

  • 我想从python字典中输出键值对,如下所示: 我想我可以这样做: 但是很明显,事情不是这样的,因为和不接受参数。

  • 我有一个自定义的对象FlightRequest的机会对象,有一个金额提交的机会和FlightRequest。 我想在FlightRequest的Amount字段中将机会的金额提交值设置为默认值。因此,每当单击FlightRequest的新按钮时,金额输入应该已经与机会的金额字段一起输入 我使用的是标准页面布局,没有任何视觉力页面布局,不能使用它。 我看到有一个选项可以设置字段的默认值,但Oppor

  • 问题内容: 有没有办法为通用模板指定默认类型? 假设我有一堂课。猴子可以生活在不同的,例如或: 有没有一种方法可以为指定默认值,所以我可以使用类型而不是没有得到编译器警告? 编辑 换句话说,是否有一种方法可以摆脱“原始类型”警告而不必明确地禁止它呢? 问题答案: 不,你不能那样做。通用参数没有默认值。您可以重新组织类型层次结构,以便有一个GenericMonkey和一个DefaultMonkey可