Строковые ключи работают быстрее или медленнее, чем ключи кортежей в словаре Python - PullRequest
0 голосов
/ 12 октября 2018

Я хочу создать словарь Python с ключами, представляющими собой комбинацию из двух или более переменных, интересно, комбинация строк лучше или кортеж лучше

Например:

a = 1 
b = 2
str_key = str(a)+str(b)
tuple_key = (a,b)

dict[str_key]или dict[tuple_key] какой из них лучше?

1 Ответ

0 голосов
/ 13 октября 2018

dict со строковыми ключами

In [9]: a = {'12': 'test', '23': 'test', '56': 'test', '45': 'test', '34': 'test', '01': 'test', '89'
   ...: : 'test', '67': 'test', '910': 'test', '78': 'test'}

In [10]: % timeit [k for k,v in a.items()]
1000000 loops, best of 3: 1.49 µs per loop

dict с клавишами кортежей

In [14]: b={(0, 1): 'test', (1, 2): 'test', (6, 7): 'test', (5, 6): 'test', (7, 8): 'test', (8, 9): '
    ...: test', (4, 5): 'test', (2, 3): 'test', (9, 10): 'test', (3, 4): 'test'}

In [15]: % timeit [k for k,v in b.items()]
1000000 loops, best of 3: 1.36 µs per loop

Очевидно, кортеж - победитель

...