我必须反转字典中的键和值,但它没有考虑整个字符串,而是逐个字符地考虑。
我的代码如下:
locat= {1: 'aa', 2: 'ab', 3: 'ba', 4: 'ab'}
location = {}
for e, char in locat.items():
location.setdefault(char, []).append(e)
结果我有:
{'aa': [1, 1], 'ab': [2, 4, 2, 4], 'ba': [3]}
但我期待这个结果:
{'aa': [1], 'ab': [2, 4], 'ba':[3]}
先感谢您。
问候,
试试这个:
c={}
dict = {1: 'aa', 2: 'ab', 3: 'ba', 4: 'ab'}
for e, char in dict.items():
c.setdefault(char, []).append(e)
print(c)
输出:
{'aa': [1], 'ab': [2, 4], 'ba': [3]}
或者
from collections import defaultdict
c = defaultdict(list)
dict = {1: 'aa', 2: 'ab', 3: 'ba', 4: 'ab'}
for e, char in dict.items():
c[char] += [e]
print(c)
输出:
defaultdict(<class 'list'>, {'aa': [1], 'ab': [2, 4], 'ba': [3]})
默认dict到dict:
你可以使用python3.x
import builtins
print(builtins.dict(c))
Python 2.x试试这个:
import __builtin__
print(__builtin__.dict(c))
顺便说一句,不要使用dict作为变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句