Articles of defaultdict

¿Las colecciones.defaultdict son seguras?

No he trabajado con subprocesos en Python y he hecho esta pregunta como un completo desconocido. Me pregunto si defaultdict es seguro para subprocesos. Déjame explicarlo: yo tengo d = defaultdict(list) que crea una lista de claves faltantes por defecto. Digamos que tengo varios hilos iniciados haciendo esto al mismo tiempo: d[‘key’].append(‘value’) Al final, se […]

DefaultDict, en los elementos agregados, mantiene las claves ordenadas en el orden de adición

defaultdict(list) un defaultdict(list) vacío defaultdict(list) , y lo estoy agregando. Quiero que las claves se ordenen en orden de adición. Mi código toma una entrada. Entrada: 4 bcdef abcdefg bcde bcdef Mi código: from collections import defaultdict d = defaultdict(list) a = int(input()) for i in range(a): temp = raw_input() d[temp].append(i) for k in d: […]

Exponer `defaultdict` como un` dict` regular

Estoy usando defaultdict(set) para rellenar una asignación interna en una estructura de datos muy grande. Una vez rellenado, toda la estructura (incluida la asignación) se expone al código del cliente. En ese momento, no quiero que nadie modifique el mapeo. Y nadie lo hace, intencionalmente. Pero a veces, el código del cliente puede referirse accidentalmente […]

¿Inicialización de un solo paso del valor predeterminado que se anexa a la lista?

Sería conveniente si un punto por defaultdict pudiera inicializarse en las siguientes líneas d = defaultdict(list, ((‘a’, 1), (‘b’, 2), (‘c’, 3), (‘d’, 4), (‘a’, 2), (‘b’, 3))) para producir defaultdict(, {‘a’: [1, 2], ‘c’: [3], ‘b’: [2, 3], ‘d’: [4]}) En cambio, me sale defaultdict(, {‘a’: 2, ‘c’: 3, ‘b’: 3, ‘d’: 4}) Para […]

Python defaultdict: 0 vs. int y vs lista

¿Hay alguna diferencia entre pasar int y lambda: 0 como argumentos? O entre list y lambda: [] ? Parece que hacen lo mismo: from collections import defaultdict dint1 = defaultdict(lambda: 0) dint2 = defaultdict(int) dlist1 = defaultdict(lambda: []) dlist2 = defaultdict(list) for ch in ‘abracadabra’: dint1[ch] += 1 dint2[ch] += 1 dlist1[ch].append(1) dlist2[ch].append(1) print dint1.items() […]

convertir una lista de cadenas delimitadas en un árbol / dictado nested, usando python

Estoy tratando de convertir una lista de cadenas separadas por puntos, por ejemplo [‘one.two.three.four’, ‘one.six.seven.eight’, ‘five.nine.ten’, ‘twelve.zero’] en un árbol (listas anidadas o dados: cualquier cosa que sea fácil de recorrer). Resulta que los datos reales tienen de 1 a 4 partes separadas por puntos de diferente longitud y tienen un total de 2200 registros. […]

Cómo leer dos líneas de un archivo y crear claves dinámicas en un bucle for, un seguimiento

Esta pregunta sigue el problema en cuestión: ¿Cómo leer dos líneas de un archivo y crear claves dinámicas en un bucle for? Pero, la naturaleza del problema ha evolucionado a una cierta complejidad que quiero abordar. A continuación se muestra la estructura de mis datos separados por espacio. chr pos M1 M2 Mk Mg1 F1_hybrid […]

¿Usando defaultdict con multiprocesamiento?

Solo estoy experimentando y aprendiendo, y sé cómo crear un diccionario compartido al que se puede acceder con múltiples procesos, pero no estoy seguro de cómo mantener el dictado sincronizado. defaultdict , creo, ilustra el problema que estoy teniendo. from collections import defaultdict from multiprocessing import Pool, Manager, Process #test without multiprocessing s = ‘mississippi’ […]

Python defaultdict y lambda

En el código de otra persona leí las siguientes dos líneas: x = defaultdict(lambda: 0) y = defaultdict(lambda: defaultdict(lambda: 0)) Como el argumento de defaultdict es una fábrica predeterminada, creo que la primera línea significa que cuando llamo x [k] para una clave k inexistente (como una statement como v = x [k]), el par […]

Resultados sorprendentes con Python timeit: Counter () vs defaultdict () vs dict ()

Obtuve resultados muy sorprendentes con el tiempo. ¿Puede alguien decirme si estoy haciendo algo mal? Estoy usando Python 2.7. Este es el contenido del archivo speedtest_init.py: import random to_count = [random.randint(0, 100) for r in range(60)] Estos son los contenidos de speedtest.py: __author__ = ‘BlueTrin’ import timeit def test_init1(): print(timeit.timeit(‘import speedtest_init’)) def test_counter1(): s = […]