python - 如何将字典转换为 python 中的元组?

标签 python

你可能经常看到这样的问题,但我这里的需求是不同的。

假设我有一个字典 d = {'1': 'stack', '2': 'over', '3': 'flow'},我想创建一个元组像 t = ('1', 'stack', '2', 'over', '3', 'flow')

最简单的方法是什么?

最佳答案

您可以使用 itertools.chain .请注意,此元组不会有可重现的顺序,因为字典没有:

In [1]: d = {'1': 'stack', '2': 'over', '3': 'flow'}

In [2]: from itertools import chain

In [3]: tuple(chain.from_iterable(d.items()))
Out[3]: ('1', 'stack', '3', 'flow', '2', 'over')

在 Python 2.x 中,您可以使用 d.iteritems() 代替 d.items()

编辑:正如 EdChum 在评论中指出的那样,您可以通过对项目应用 sorted 来确保顺序。但是请注意,默认情况下字符串按字典顺序排序:

In [4]: sorted(['2', '10'])
Out[4]: ['10', '2']

您可以通过向 sorted 提供 key 参数来覆盖它:

In [5]: key = lambda i: (int(i[0]), i[1])

In [6]: tuple(chain.from_iterable(sorted(d.items(), key=key)))
Out[6]: ('1', 'stack', '2', 'over', '3', 'flow')

关于python - 如何将字典转换为 python 中的元组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23240272/

相关文章:

python - 给定实例的方法如何获取实例?

python - 执行引用同一列中先前值的计算

Python:如何替换pdf中的文本

python - 如何对 Django 管理内联表单进行单元测试

python - 如何使用 pyav 或 opencv 解码原始 H.264 数据的实时流?

python - Pyspark 为除一列之外的所有数据帧提供支持

Python 线程循环方法不会继续代码

python - DecisionTreeClassifier 的精确召回曲线下的面积是一个正方形

python - pytorch 1.3.1 中的 '_DataLoaderIter' 在哪里?

python - 格式漂亮的 numpy JSON 编码器