你可能会看到很多这类问题,但我的要求却不同。
说我有一个字典d = {'1': 'stack', '2': 'over', '3': 'flow'}
,我想制作一个像t = ('1', 'stack', '2', 'over', '3', 'flow')
最简单的方法是什么?
答案 0 :(得分:6)
您可以使用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']
您可以通过向key
提供sorted
参数来覆盖此内容:
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')