#python #python-3.x #loops #counter #itertools
Вопрос:
Используя Counter()
, я хочу выполнить двоичный подсчет переменных в списке. Поэтому вместо того, чтобы подсчитывать количество для каждой переменной, я просто хотел бы иметь Counter()
переменную, в которой все значения равны одному.
Итак, для данного списка:
data = [1,2,3,4,5,62,3,4,5,1]
Я хочу, чтобы результат был:
Counter({1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 62: 1})
Вместо:
Counter({1: 2, 2: 1, 3: 2, 4: 2, 5: 2, 62: 1})
Я осознаю, что мог бы пройти через счетчик:
binary_count = {x: 1 for x in Counter(data)}
Однако для этого требуется один раз просмотреть словарь, и мне это кажется ненужным.
Ответ №1:
Это не то Counter
, для чего предназначен a, поэтому, что бы вы ни делали, потребуется изменить вывод.
Почему бы просто не не использовать a Counter
для начала? Это должно быть тривиально с обычным dict
.
Черт возьми, вы даже можете просто использовать dict.fromkeys
, так что:
>>> data = [1,2,3,4,5,62,3,4,5,1]
>>> dict.fromkeys(data, 1)
{1: 1, 2: 1, 3: 1, 4: 1, 5: 1, 62: 1}
Комментарии:
1. Спасибо, я не знал об этом
dict
варианте2. @Emil Если значения не важны, вы можете даже рассмотреть возможность использования a
set
, что похоже на диктант без значений.