Python2で辞書のキーと値を入れ替える

これか

dict((v, k) for k, v in d.iteritems())

これだろうか

dict(zip(d.values(), d.keys()))
# coding=utf-8

from benchmarker import Benchmarker


_dict = dict(((str(i), i) for i in range(0, 50000)))


def exchange_keys_with_values_use_generator(d):
    return dict((v, k) for k, v in d.iteritems())


def exchange_keys_with_values_use_zip(d):
    return dict(zip(d.values(), d.keys()))

for bm in Benchmarker(width=40, cycle=1000, extra=1):
    for _ in bm('use generator'):
        exchange_keys_with_values_use_generator(_dict)

    for _ in bm('use zip'):
        exchange_keys_with_values_use_zip(_dict)


generatorのほうがちょっとよさそう

## Remove min & max                           min     cycle       max     cycle
use generator                              0.0141    (#746)    0.0377     (#47)
use zip                                    0.0207    (#829)    0.0949     (#51)

## Average of 1000 (=1002-2*1)               user       sys     total      real
use generator                              0.0184    0.0002    0.0186    0.0188
use zip                                    0.0275    0.0006    0.0281    0.0283

## Ranking                                   real
use generator                              0.0188 (100.0%) *************************
use zip                                    0.0283 ( 66.5%) *****************

## Ratio Matrix                              real    [01]    [02]
[01] use generator                         0.0188  100.0%  150.3%
[02] use zip                               0.0283   66.5%  100.0%