どのように交換することはできま辞書へのリストタプル?
-
21-08-2019 - |
質問
している場合は、辞書のように:
{ 'a': 1, 'b': 2, 'c': 3 }
どのように交換することはできます。
[ ('a', 1), ('b', 2), ('c', 3) ]
どのように交換することはできます。
[ (1, 'a'), (2, 'b'), (3, 'c') ]
解決
>>> d = { 'a': 1, 'b': 2, 'c': 3 }
>>> d.items()
[('a', 1), ('c', 3), ('b', 2)]
>>> [(v, k) for k, v in d.iteritems()]
[(1, 'a'), (3, 'c'), (2, 'b')]
なめしたいが、dictsいない特定めます。1 ソートで編としても必要です。
参照: 項目(), iteritems()
Python3.x、使用しないで iteritems
(なくなり存在するが、代わりに使用 items
, は、現を返します"view"を辞書です。を参照 ニュー 文書のためのPython3.0、 文書の景色.
1:挿入順の保存のためのdictsした 追加Python3.7
他のヒント
誰もなかったことから、私はpy3kバージョンを追加します。
>>> d = { 'a': 1, 'b': 2, 'c': 3 }
>>> list(d.items())
[('a', 1), ('c', 3), ('b', 2)]
>>> [(v, k) for k, v in d.items()]
[(1, 'a'), (3, 'c'), (2, 'b')]
あなたは、リストの内包表記を使用することができます。
[(k,v) for k,v in a.iteritems()]
あなたが[ ('a', 1), ('b', 2), ('c', 3) ]
となります。
[(v,k) for k,v in a.iteritems()]
他の例
リストの内包表記についてもっと読むのあなたが好きならば、それは非常に興味深いですあなたは彼らと何を行うことができます。
のリストを作成しnamedtuples
ではしばしば非常に使えて便利 namedtuple.例えば、辞書の'name'のキーとして、'score'の値としてい
d = {'John':5, 'Alex':10, 'Richard': 7}
できるリスト項目のタプルから選別もよろしくお願いします。車の名前と得点、そうすることでプレーヤーのうち、最高得点を得た(index=0)もPythonicallyようになります:
>>> player = best[0]
>>> player.name
'Alex'
>>> player.score
10
しています:
リストにランダムな順序維持の ョンにします。OrderedDict:
import collections
Player = collections.namedtuple('Player', 'name score')
players = list(Player(*item) for item in d.items())
の順でソートされる値('score'):
import collections
Player = collections.namedtuple('Player', 'score name')
分別ときには欠かすことのできない点には、最初の
worst = sorted(Player(v,k) for (k,v) in d.items())
ソートした得点の高い先:
best = sorted([Player(v,k) for (k,v) in d.items()], reverse=True)
何が欲しいのはdict
のitems()
とiteritems()
方法です。 items
は(キー、値)タプルのリストを返します。タプルは不変であるので、それらを元に戻すことはできません。したがって、あなたはアイテムを反復処理し、逆に(値、キー)タプルを取得するために新しいタプルを作成する必要があります。それはむしろメモリ全体リストを維持することよりも、(キー、値)の組を生成するために発電機を使用するための反復のために、iteritems
が好ましい。
Python 2.5.1 (r251:54863, Jan 13 2009, 10:26:13)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a = { 'a': 1, 'b': 2, 'c': 3 }
>>> a.items()
[('a', 1), ('c', 3), ('b', 2)]
>>> [(v,k) for (k,v) in a.iteritems()]
[(1, 'a'), (3, 'c'), (2, 'b')]
>>>
[(k,v) for (k,v) in d.iteritems()]
と
[(v,k) for (k,v) in d.iteritems()]
>>> a={ 'a': 1, 'b': 2, 'c': 3 } >>> [(x,a[x]) for x in a.keys() ] [('a', 1), ('c', 3), ('b', 2)] >>> [(a[x],x) for x in a.keys() ] [(1, 'a'), (3, 'c'), (2, 'b')]
による keys()
や values()
方法の辞書 zip
.
zip
戻りのリストタプルとなるように命じた。
デモ:
>>> d = { 'a': 1, 'b': 2, 'c': 3 }
>>> zip(d.keys(), d.values())
[('a', 1), ('c', 3), ('b', 2)]
>>> zip(d.values(), d.keys())
[(1, 'a'), (3, 'c'), (2, 'b')]
d = {'John':5, 'Alex':10, 'Richard': 7}
list = []
for i in d:
k = (i,d[i])
list.append(k)
print list
Python3.xを使用してください。
for key, value in dict.items():
temp = [key,value]
dictlist.append(temp)
はPython 2.7を使用するために、
for key, value in dict.iteritems():
temp = [key,value]
dictlist.append(temp)
おかげ