簡體   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