为什么将Python dict转换为元组会返回一组键?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么将Python dict转换为元组会返回一组键?相关的知识,希望对你有一定的参考价值。

我遇到了一些令我非常困惑的Python代码。

my_dict = {'a': 'b'}
a, = my_dict            # a = 'a'
a, b = my_dict          # ValueError: Too many values to unpack

基本上,我发现将字典作为元组转换会返回字典键的元组。

my_dict = {'a': 'b', 'c': 'd'}
a = tuple(my_dict)      # a = ('a', 'c')

为什么元组(dict)会返回一个键元组?我可以理解它,但无法找到任何关于原因的文档或解释。有谁能解释一下?

答案

字典对象清楚地记录了here

路径(a)中

在字典的键上返回一个迭代器。

请注意,这就是为什么当您使用listtuple将iterable转换为列表或元组时,我不喜欢使用术语“强制转换”。从元组docs

class tuple([iterable]):

...

构造函数构建一个tuple,其项目与iterable的项目相同且顺序相同。 iterable可以是序列,支持迭代的容器,也可以是迭代器对象。如果iterable已经是一个元组,则返回不变。例如,tuple('abc')返回('a', 'b', 'c')tuple( [1, 2, 3] )返回(1, 2, 3)。如果没有给出参数,构造函数将创建一个新的空元组()

以上是关于为什么将Python dict转换为元组会返回一组键?的主要内容,如果未能解决你的问题,请参考以下文章

使类可转换为元组和字典

Python将字典中的值转换为元组

使用python将csv文件转换为元组列表

Python Tuple(元组) tuple()方法

如何创建将二叉树转换为元组的函数?

Python Tuple(元组) tuple()方法