[英]python tuple to dict
對於元組, t = ((1, 'a'),(2, 'b'))
dict(t)
返回{1: 'a', 2: 'b'}
有沒有好的方法來獲取{'a': 1, 'b': 2}
(鍵和值交換)?
最終,我希望能夠返回1
given 'a'
或2
given 'b'
,也許轉換為 dict 不是最好的方法。
嘗試:
>>> t = ((1, 'a'),(2, 'b'))
>>> dict((y, x) for x, y in t)
{'a': 1, 'b': 2}
一個稍微簡單的方法:
>>> t = ((1, 'a'),(2, 'b'))
>>> dict(map(reversed, t))
{'a': 1, 'b': 2}
如果你在python 2.7上更簡潔:
>>> t = ((1,'a'),(2,'b'))
>>> {y:x for x,y in t}
{'a':1, 'b':2}
>>> dict([('hi','goodbye')])
{'hi': 'goodbye'}
要么:
>>> [ dict([i]) for i in (('CSCO', 21.14), ('CSCO', 21.14), ('CSCO', 21.14), ('CSCO', 21.14)) ]
[{'CSCO': 21.14}, {'CSCO': 21.14}, {'CSCO': 21.14}, {'CSCO': 21.14}]
如果同一個鍵有多個值,則以下代碼會將這些值附加到與其鍵對應的列表中,
d = dict()
for x,y in t:
if(d.has_key(y)):
d[y].append(x)
else:
d[y] = [x]
以下是幾種方法:
>>> t = ((1, 'a'), (2, 'b'))
>>> # using reversed function
>>> dict(reversed(i) for i in t)
{'a': 1, 'b': 2}
>>> # using slice operator
>>> dict(i[::-1] for i in t)
{'a': 1, 'b': 2}
對於 Python 3.6 及更高版本,它是 function:
mydict=myty._asdict()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.