Articles of colecciones

¿Por qué OrderedDict no usa super?

Podemos crear un OrderedCounter trivial utilizando la herencia múltiple: >>> from collections import Counter, OrderedDict >>> class OrderedCounter(Counter, OrderedDict): … pass … >>> OrderedCounter(‘Mississippi’).items() [(‘M’, 1), (‘i’, 4), (‘s’, 4), (‘p’, 2)] Corríjame si me equivoco, pero esto se basa fundamentalmente en el hecho de que Counter usa super : class Counter(dict): def __init__(*args, **kwds): […]

Subclasificación de OrderedDict y defaultdict

Raymond Hettinger mostró una manera realmente genial de combinar clases de colección: from collections import Counter, OrderedDict class OrderedCounter(Counter, OrderedDict): pass # if pickle support is desired, see original post Quiero hacer algo similar para OrderedDict y defaultdict. Pero, por supuesto, defaultdict tiene una firma __init__ diferente, por lo que requiere trabajo adicional. ¿Cuál es […]

¿Es el valor predeterminado en el módulo de colecciones de Python realmente más rápido que usar setdefault?

He visto a otros progtwigdores de Python usar defaultdict del módulo de colecciones para el siguiente caso de uso: from collections import defaultdict s = [(‘yellow’, 1), (‘blue’, 2), (‘yellow’, 3), (‘blue’, 4), (‘red’, 1)] def main(): d = defaultdict(list) for k, v in s: d[k].append(v) Por lo general, he abordado este problema utilizando setdefault […]

En Python, ¿cómo puedo determinar si un iterable tiene un orden de iteración estable?

En Python, ¿cómo puedo determinar si un iterable tiene un orden de iteración estable? Hay collections.Iterable Clase base abstracta itable pero no hay contraparte estable. La razón por la que pregunto es para poder evitar o advertir a los usuarios cuando pasan (por error) iterable con un orden de iteración inestable ( dict , set […]

¿Cómo ordenar contador por valor? – python

Aparte de hacer una lista de comprensión de la lista invertida, ¿existe una forma pythonica de ordenar el contador por valor? Si es así, es más rápido que esto: >>> from collections import Counter >>> x = Counter({‘a’:5, ‘b’:3, ‘c’:7}) >>> sorted(x) [‘a’, ‘b’, ‘c’] >>> sorted(x.items()) [(‘a’, 5), (‘b’, 3), (‘c’, 7)] >>> [(l,k) […]

¿Por qué 0 <() evalúa a True en Python?

Sin querer, time.clock<() con la respuesta del intérprete de Python 2.7 siendo: True . El siguiente código ejemplifica el comportamiento: >>> repr(time.clock) ” >>> time.clock<() True Además: >>> import sys >>> sys.maxint >> map(lambda _:0<_,((),[],{})) [True, True, True] A diferencia de: >>> 1<set(()) TypeError: can only compare to a set Pregunta: Además de por qué, […]

¿Hay alguna forma de verificar si un elemento existe en una tupla de Python?

He visto una función de index pero dice que falla si no puede encontrarla. ¿Hay una forma sencilla de comprobar si el artículo existe? Solo quiero obtener un valor booleano del resultado, así como: if tuple.exists(“item”): print “it exists”

obtén el recuento de elementos de tuplas de tu propia … no solo el rango o la secuencia

El siguiente código se ejecuta para los primeros tres elementos de la tupla de esta lista SS1=[(1, 2, 3, 4, 5), (1, 2, 3, 4, 6), (1, 2, 3, 5, 6), (1, 2, 4, 5, 6), (1, 3, 4, 5, 6), (2, 3, 4, 5, 6)] from collections import Counter c = Counter(elem[0:3] for elem […]

¿Cómo se puede reescribir esta función para implementar OrderedDict?

Tengo la siguiente función que hace un trabajo simple de analizar un archivo XML en un diccionario. Desafortunadamente, dado que los diccionarios de Python no están ordenados, no puedo desplazarme a través de los nodos como quisiera. ¿Cómo puedo cambiar esto para que genere un diccionario ordenado que refleje el orden original de los nodos […]