Tengo un dolor de cabeza con este código python.¿Perder elementos en el código python al crear un diccionario de una lista?
print "length:", len(pub) # length: 420
pub_dict = dict((p.key, p) for p in pub)
print "dict:", len(pub_dict) # length: 163
Si entiendo este derecho, aparece un diccionario que contiene el atributo p.key
como la clave y el objeto p
como su valor para cada elemento de pub
. ¿Hay algún efecto secundario que no veo? Porque len(pub_dict)
debe ser el mismo que len(pub)
y ciertamente no está aquí, ¿o estoy equivocado?
Si hay varios 'p' con la misma' p.key' en 'pub', solo el último terminará en el diccionario porque puede contener solo un valor por clave. –
@Sven: ¡Sí, hay algunos! Gracias por señalar eso! Ahora sé de dónde viene el error. Tal vez quiera convertir su comentario en una respuesta, para que yo pueda aceptarlo. – Aufwind