你可能经常看到这样的问题,但我这里的需求是不同的。
假设我有一个字典 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/