繁体   English   中英

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

[英]How can I convert a dictionary to a tuple in python?

你可能会看到很多这类问题,但我的要求却不同。

假设我有一个词典d = {'1': 'stack', '2': 'over', '3': 'flow'} ,我想制作一个像t = ('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')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM