Estoy usando Counter
de collections
para contar la aparición de algunos números. Estoy tratando de poner los números en una lista y el recuento en otra lista.
El Counter(array)
devuelve datos que le gustan como {(30: 2, 26: 2, 18: 2)}
. Me gustaría que hubiera dos matrices, digamos A[]
y B[]
, donde A
sería [30, 26, 18]
y B
sería [2, 2, 2]
.
¿Cómo haría esto?
4 respuestas
Puede simplemente zip
el items
del dict
que Counter
devuelve como,
>>> vals
[26, 26, 18, 18, 30, 30]
>>> import collections
>>> collections.Counter(vals)
Counter({26: 2, 18: 2, 30: 2})
>>> zip(*collections.Counter(vals).items())
[(26, 18, 30), (2, 2, 2)]
>>> a, b = zip(*collections.Counter(vals).items())
>>> a
(26, 18, 30)
>>> b
(2, 2, 2)
Counter
es una subclase de dict
, por lo que puede usar los métodos de diccionario normales
from collections import Counter
array = [1, 2, 3, 3, 4, 4, 4]
counter = Counter(array)
items = list(counter.keys())
counts = list(counter.values())
isinstance(counter, dict) # True
Counter es un dict spcialized. Tiene teclas () y values () así como elementos ()
from collections import Counter
c =Counter( {30: 2, 26: 2, 18: 77} )
a = list(c.keys()) # make a list from the keys view
b = list(c.values()) # make a list from the values
# or # decompose the list of key,value tuples
A, B = map(list,zip(*c.items()))
print(a,b,A,B,sep="\n")
Salida:
[30, 26, 18] # a
[2, 2, 77] # b
[30, 26, 18] # A
[2, 2, 77] # B
Doku
Use .items () para recopilar las claves y los valores:
from collections import Counter
d=['a', 'b', 'b', 'c']
l = Counter(d)
A=[k for k, v in l.items()]
print(A)
Result: ['a', 'b', 'c']
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.