Я ищу одну линию, эффективный способ, заданный список, для вывода словаря с ключами в качестве отдельных значений в списке, а значения словаря - в списке.Python словарь счетчиков списка
Например,
a = [1,1,1,2,2,3,] ##input
b = {1: 3, 2: 2, 3: 1} ##output
Я обнаружил, что {i: a.count(i) for i in a}
работает отлично, но он будет делать лишние вычисления, например, в списке ввода a=[1,1,1]
, он перепишет ключ [1] со значением [3] 3 раза.
Я мог бы также сделать что-то более ручное, как показано ниже, но я ищу что-то более элегантное и простое.
b = {}
for i in a:
if i in b:
b[i] += 1
else:
b[a] = 1
Вы можете обернуть ваш список 'a' в наборе. 'b = {i: a.count (i) для i в наборе (a)}'. Нет необходимости в модулях –