Найти - Пользователи
Полная версия: dict с нужной последовательностью ключей
Начало » Python для новичков » dict с нужной последовательностью ключей
1
armor
Добрый день,
я так понял что dict хранится по-своему, и из-за этого сбивается порядок. Как можно обойти это?
Что бы при переборе выводилось в том же порядке, как и записано в переменной? sort не подходит…
FishHook
В модуле collections есть класс OrderedDict, но не используйте его без нужды, он работает медленнее обычного dict()
armor
Как раз нужда есть, сильно медленнее? Таких переменных у меня штук 15 в каждом по 5-30 значений, я думаю это не те объемы, чтобы тормозить.
FishHook
armor
сильно медленнее
Спидометр Вам в руки
armor
Разницы не заметил. Спасибо за помощь.
FishHook
# -*- coding: utf-8 -*-
import timeit
from collections import OrderedDict
s=range(1000)
d=dict(enumerate(s))
d1=OrderedDict(enumerate(s))
def f1():
    d.update(enumerate(s, 2000))
def f2():
    d1.update(enumerate(s, 2000))
print timeit.timeit('f1()', number=10000, setup="from __main__ import d,s, f1")
print timeit.timeit('f2()', number=10000, setup="from __main__ import d1,s, f2")
>>>0.797545909882
>>>6.81275892258
armor
Плохо конечно, но у меня они используются как константы и все работа с ними сводится к перебору и обращению по ключу.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB