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

Python:将defaultdict转换为dict

岳允晨
2023-03-14
问题内容

我如何转换defaultdict

number_to_letter
defaultdict(<class 'list'>, {'2': ['a'], '3': ['b'], '1': ['b', 'a']})

成为普通命令?

{'2': ['a'], '3': ['b'], '1': ['b', 'a']}

问题答案:

您可以简单地致电dict

>>> a
defaultdict(<type 'list'>, {'1': ['b', 'a'], '3': ['b'], '2': ['a']})
>>> dict(a)
{'1': ['b', 'a'], '3': ['b'], '2': ['a']}

但请记住,defaultdict 一个dict:

>>> isinstance(a, dict)
True

只是稍有不同的行为,因为当您试图访问一个缺少关键-这通常会提高一个KeyError-在default_factory被称为改为:

>>> a.default_factory
<type 'list'>

这就是您print a在字典的数据端出现之前看到的内容。

因此,在不实际制作新对象的情况下恢复更多类似dict的行为的另一个技巧是重置default_factory

>>> a.default_factory = None
>>> a[4].append(10)
Traceback (most recent call last):
  File "<ipython-input-6-0721ca19bee1>", line 1, in <module>
    a[4].append(10)
KeyError: 4

但这在大多数情况下都不值得。



 类似资料:
  • 我知道一个解决方案可能是将这个dict中的每个键值对转换为dict,这样整个结构就变成了dict的dict,然后我们可以将每一行单独添加到DataFrame中。但我想知道是否有更简单、更直接的方法来做到这一点。 到目前为止,我已经尝试将dict转换为series对象,但这似乎不能保持列之间的关系:

  • 我试图将Python程序转换为C++,因为我对Python的理解稍微好一点。然而,翻译出来的代码并不起作用。有人能帮我一下吗?我试图用C++制作一个数独板,但它在中返回一些值,而不是其他位置。加上它们是无效的,并包含0。 这个程序的输出是一个二维数组,所有值都不在0,并且对数独板有效: 是一个长度为9的二维数组,在每个位置都有9个列出的语句。在这里,它们都被初始化为。 这个程序的输出也是一个二维数

  • 问题内容: 有没有办法使defaultdict也成为defaultdict的默认值?(即无限级递归defaultdict?) 我希望能够做到: 因此,我可以做到x = defaultdict(defaultdict),但这仅是第二层: 有一些食谱可以做到这一点。但是可以仅使用常规的defaultdict参数来完成吗? 请注意,这是在问如何执行无限级递归defaultdict,因此它与Python不

  • 我一直在我的开发服务器中使用模块来轻松地从转换为: 但是,我在生产服务器中部署了我的应用程序,但我没有安装Excel应用程序,因此引发了以下错误: 在Python中,从转换为有什么好的替代方法吗? 我已经用PDFWriter测试了xtopdf,但是使用这个解决方案,您需要逐个读取和迭代范围并写入行。我想知道是否有一个更直接的解决方案类似于win32com。客户 谢谢

  • 我正在制作一个奥赛罗播放器,实现了一个带有alpha-beta剪枝的极大极小算法。然后,我在网上对最好的算法做了一些研究,并不断听到他们都使用的“negamax”算法。好像大部分人都觉得negamax比minimax快(我觉得是因为它不在min和max播放器之间切换?),所以我想把我的minimax算法变成negamax,如果那不是太难的话。 我想知道人们是否有任何洞察力,有多少更快地使用Niga

  • 问题内容: 我有一个时间序列。我提取了索引,并希望将它们分别转换为。您如何去做?我尝试使用,但使用后检查时无法转换 问题答案: 只需尝试to_datetime() 更改类型 更新 谢谢@mjp,以后会弃用,请改用!