Jak*_*ake 136 python dictionary tuples
对于元组,t = ((1, 'a'),(2, 'b'))
dict(t)
返回{1: 'a', 2: 'b'}
有没有一个好的方法来获得{'a': 1, 'b': 2}
(键和vals交换)?
最终,我希望能够返回1
给定'a'
或2
给定'b'
,也许转换为dict不是最好的方式.
Gre*_*ill 257
尝试:
>>> t = ((1, 'a'),(2, 'b'))
>>> dict((y, x) for x, y in t)
{'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
jte*_*ace 68
一个稍微简单的方法:
>>> t = ((1, 'a'),(2, 'b'))
>>> dict(map(reversed, t))
{'a': 1, 'b': 2}
Run Code Online (Sandbox Code Playgroud)
aut*_*kos 40
如果你在python 2.7上更简洁:
>>> t = ((1,'a'),(2,'b'))
>>> {y:x for x,y in t}
{'a':1, 'b':2}
Run Code Online (Sandbox Code Playgroud)
如果同一个键有多个值,则以下代码会将这些值附加到与其键对应的列表中,
d = dict()
for x,y in t:
if(d.has_key(y)):
d[y].append(x)
else:
d[y] = [x]
Run Code Online (Sandbox Code Playgroud)