Словарь <TKey, TValue> заказывают ключами по умолчанию?

Как насчет этого?

from collections import defaultdict
all_dict = defaultdict(list)
for index, val in enumerate(x):
    for value in val:
        if value not in all_dict:
            all_dict[value].append(index)

print(all_dict)

Это даст вам ожидаемый результат:

defaultdict(list,
            {'blablabla': [0],
             'blabliblou': [0],
             'blablablou': [1],
             'blibloubla': [1],
             'oubabababa': [2],
             'baboulila': [2]})
11
задан abatishchev 26 February 2009 в 09:38
поделиться

2 ответа

Вы не можете полагаться на это поведение. Это - просто совпадение, которое происходит, вероятно, из-за Вашего объема выборки или реализации GetHashCode. После того как Вы добавляете достаточно объектов в таблицу и вызываете достаточные рехеширования, ключи не будут заказаны.

В MSDN явно говорится, что порядок Ключей неуказанный (http://msdn.microsoft.com/en-us/library/yt2fy5zk.aspx)

24
ответ дан 3 December 2019 в 01:29
поделиться

Вы ищете SortedDictionary<K,V>. Словарь<K,V> хеширование использования, которое с маленькими наборами может выглядеть поверхностно подобным сортировке.

16
ответ дан 3 December 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: