967 votes

Python inverse / l'inverse d'une cartographie

Étant donné un dictionnaire comme:

map = { 'a': 1, 'b':2 }

Comment peut-on inverser cette carte pour obtenir:

inv_map = { 1: 'a', 2: 'b' }

1385voto

SilentGhost Points 79627

pour python 2.7+ / 3+:

inv_map = {v:k for k, v in map.items()}

189voto

Robert Rossney Points 43767

Si les valeurs en map ne sont pas uniques:

inv_map = {}
for k, v in map.iteritems():
    inv_map[v] = inv_map.get(v, [])
    inv_map[v].append(k)

52voto

fs. Points 340
def inverse_mapping(f):
    return f.__class__(map(reversed, f.items()))

45voto

sykora Points 30290

Essayez ceci :

inv_map = dict(zip(map.values(), map.keys()))

ou sinon

inv_map = dict((map[k], k) for k in map)

ou à l'aide de python 3.0 dict interprétations de la

inv_map = {map[k] : k for k in map}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X