У меня есть объект Counter()
, который дает мне количество вхождений списка строк. И у меня есть уникальный список строк. И мне нужно привести список счетчиков из счетчика, а затем поместить нули в другие строковые экземпляры с 0 подсчетами.Как создать список счетчиков из уникального списка и объекта Counter?
Я могу сделать это следующим образом, но могу ли я достичь того же z
списка в более эффективном/путинском режиме?
from collections import Counter
x = Counter(['abc','def','abc'])
uniq = sorted(set(['abc', 'def', 'abc', 'abc', 'ghi', 'jkl','jkl']))
z = [x[i] for i in uniq]
Выход
>>> z
[2, 1, 0, 0]
>>> uniq
['abc', 'def', 'ghi', 'jkl']
На самом деле конечная цель состоит в том, чтобы получить np.array(z)
и np.array(uniq)
Мое мнение таково, что ваш самый лучший путь. Если ваш второй список длинный, вы можете заменить 'np.array (sorted (set (...)))' with 'np.unique (...)' – askewchan