Потеря элементов в коде Python при создании словаря из списка?

У меня головная боль с этим кодом Python.

    print "length:", len(pub) # length: 420
    pub_dict = dict((p.key, p) for p in pub)
    print "dict:", len(pub_dict) # length: 163

Если я правильно понимаю, я получаю словарь, содержащий атрибут p.key в качестве ключа и объект p в качестве его значение для каждого элемента pub . Есть ли какие-то побочные эффекты , которых я не вижу? Поскольку len (pub_dict) должно быть таким же, как len (pub) , и его здесь точно нет, или я ошибаюсь?

5
задан Billy ONeal 8 June 2011 в 01:34
поделиться