你可能经常看到这种问题,但我在这里的需求不同。
假设我有一个字典 d = {'1': 'stack', '2': 'over', '3': 'flow'}
,我想创建一个类似于 t = ('1', 'stack', '2', 'over', '3', 'flow')
的元组。
最简单的方法是什么?
你可能经常看到这种问题,但我在这里的需求不同。
假设我有一个字典 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')
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')
tuple(chain.from_iterable(sorted(d.items())))
。 - EdChumsorted
并不是必要的。 - fish748