У меня очень большой словарь, возможно, около 10,000 keys/values
, и я хочу одновременно изменить все значения на 0
. Я знаю, что я могу выполнить цикл и установить все значения в 0
, но это требуется навсегда. Есть ли в любом случае, что я могу одновременно установить все значения 0
?Одновременно замена всех значений словаря на нуль python
метод Looping, очень медленно:
#example dictionary
a = {'a': 1, 'c': 1, 'b': 1, 'e': 1, 'd': 1, 'g': 1, 'f': 1, 'i': 1, 'h': 1, 'k': 1,
'j': 1, 'm': 1, 'l': 1, 'o': 1, 'n': 1, 'q': 1, 'p': 1, 's': 1, 'r': 1, 'u': 1,
't': 1, 'w': 1, 'v': 1, 'y': 1, 'x': 1, 'z': 1}
for key.value in a.items():
a[key] = 0
Выходные:
{'a': 0, 'c': 0, 'b': 0, 'e': 0, 'd': 0, 'g': 0, 'f': 0, 'i': 0, 'h': 0, 'k': 0,
'j': 0, 'm': 0, 'l': 0, 'o': 0, 'n': 0, 'q': 0, 'p': 0, 's': 0, 'r': 0, 'u': 0,
't': 0, 'w': 0, 'v': 0, 'y': 0, 'x': 0, 'z': 0}
Вы профилированного свой код и нашел, что это является ограничивающим фактором ? Словарь с 10 тыс. Предметов не очень большой. –
Его не столько размер, сколько раз, что я собираюсь перебирать словари. Я запрограммировал его на цикл почти каждую секунду, и, кроме того, у меня нет ни одного, а нескольких словарей. – enginefree
Вы можете одновременно установить все значения в 0, если все значения будут в непрерывном блоке памяти. Я не думаю, что вы можете сделать это со встроенным dict ... если вы не создадите свой собственный dict, реализующий структуру данных в C. –