Может кто-нибудь объяснить мне это поведение?
mapping = dict.fromkeys([1, 2, 3], [])
objects = [{'pk': 1}, {'pk': 2}, {'pk': 3}]
for obj in objects:
pk = obj['pk']
mapping[pk].append(obj)
print mapping
# expected: {1: [{'pk': 1}], 2: [{'pk': 2}], 3: [{'pk': 3}]}
# got: {1: [{'pk': 1}, {'pk': 2}, {'pk': 3}], 2: [{'pk': 1}, {'pk': 2}, {'pk': 3}], 3: [{'pk': 1}, {'pk': 2}, {'pk': 3}]}
Я пытаюсь сопоставить дикты в objects
с другим диктовкой, ключи которой являются свойствами оригинальной диктовки. Предположим, что список objects
содержит несколько объектов каждого уникального PK (причина, по которой я не просто использую map
здесь).