['a','a','b','c','c','c']
a¿Cómo asignar una lista a otra en python?
[2, 2, 1, 3, 3, 3]
y
{'a': 2, 'c': 3, 'b': 1}
['a','a','b','c','c','c']
a¿Cómo asignar una lista a otra en python?
[2, 2, 1, 3, 3, 3]
y
{'a': 2, 'c': 3, 'b': 1}
>>> x=['a','a','b','c','c','c']
>>> map(x.count,x)
[2, 2, 1, 3, 3, 3]
>>> dict(zip(x,map(x.count,x)))
{'a': 2, 'c': 3, 'b': 1}
>>>
Para el primero:
l = [ 'a', 'a', 'b', 'c',' c', 'c']
mapa (l.count, l)
a = ['a','a','b','c','c','c']
b = [a.count(x) for x in a]
c = dict(zip(a, b))
He incluido la respuesta de Wim. Gran idea
'c = dict (zip (a, b))' debería hacerlo para calcular 'c' – Wim
segundo podría ser sólo
dict(zip(['a','a','b','c','c','c'], [2, 2, 1, 3, 3, 3]))
+1 ¡genial! He actualizado mi respuesta – luc
Esta codificación debe dar el resultado:
from collections import defaultdict
myDict = defaultdict(int)
for x in mylist:
myDict[x] += 1
Por supuesto, si desea que la lista entre medio consecuencia, acaba de obtener los valores de el dict (mydict.values ()).
+1 por ser O (N) – sholsapp
d=defaultdict(int)
for i in list_to_be_counted: d[i]+=1
l = [d[i] for i in list_to_be_counted]
Utilice un set
para contar solamente cada artículo una vez, utilizar el método de la lista count
contarlos, almacenarlos en una dict
con el artículo como clave y la ocurrencia es el valor.
l=["a","a","b","c","c","c"]
d={}
for i in set(l):
d[i] = l.count(i)
print d
Salida:
{'a': 2, 'c': 3, 'b': 1}
para mí este es el más simple de entender/implementar. ¿Sabes si es más lento que usar el contador de colecciones? – zach
Para ejemplos tan triviales, implemétalos y cronometralos. No confíes en mis conjeturas. O más bien, no te importa la velocidad en absoluto; estás usando Python por simplicidad, no por rendimiento. – Mizipzor
En Python o ≥2.7 ≥3.1, tenemos un sistema incorporado en la estructura de datos collections.Counter para anotar una lista
>>> l = ['a','a','b','c','c','c']
>>> Counter(l)
Counter({'c': 3, 'a': 2, 'b': 1})
Es fácil de construir [2, 2, 1, 3, 3, 3]
después.
>>> c = _
>>> [c[i] for i in l] # or map(c.__getitem__, l)
[2, 2, 1, 3, 3, 3]
No entiendo la pregunta. – Federer
Sería muy útil agregar al menos una línea de descripción. – Juergen
esta pregunta se hace todos los días durante la última semana – SilentGhost