У меня есть словарь типа
{'A': 0, 'B': 1, 'C': 2, 'D': 3, etc}
Как удалить элементы из этого словаря, не создавая пробелов в значениях, если словарь не упорядочен?
Пример:
У меня есть большая матрица, где строки представляют слова, а столбцы представляют документы, в которых встречаются эти слова.Я храню слова и соответствующие им индексы как словарь.Например, для этой матрицы
2 0 0
1 0 3
0 5 1
4 1 2
словарь будет выглядеть следующим образом:
words = {'apple': 0, 'orange': 1, 'banana': 2, 'pear': 3}
Если я уберу слова 'apple'
и 'banana'
, матрица будет содержать только две строки.Таким образом, значение 'orange'
в словаре теперь должно равняться 0
, а не 1
, а значение 'pear'
должно составлять 1
вместо 3
.
В Python 3.6+ словари упорядочены, поэтому я могу просто написать что-то вроде этого, чтобы переназначить значения:
i = 0
for k, v in words.items():
v = i
i += 1
или, альтернативно
words = dict(zip(terms.keys(), range(0, matrix.shape[0])))
Я думаюЭто далеко не самый эффективный способ изменения значений, и он не будет работать с неупорядоченными словарями.Как это сделать эффективно?Есть ли способ легко переназначить значения в случае, если словарь не упорядочен?