在Python中制作唯一对象列表

用Python填充数组是可能的,如下所示:

> [0] * 10
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

我想使用这个示例原则来快速创建一个类似对象的列表:

> a = [{'key': 'value'}] * 3
> a
[{'key': 'value'}, {'key': 'value'}, {'key': 'value'}]

但看起来这些对象是相互关联的:

> a[0]['key'] = 'another value'
> a
[{'key': 'another value'}, {'key': 'another value'}, {'key': 'another value'}]

鉴于Python没有clone()方法(这是我寻找的第一件事), 我将如何创建唯一对象而无需声明for循环并调用append()来添加它们?

谢谢!


一个简单的列表理解应该做的诀窍:

>>> a = [{'key': 'value'} for _ in range(3)]
>>> a
[{'key': 'value'}, {'key': 'value'}, {'key': 'value'}]
>>> a[0]['key'] = 'poop'
>>> a
[{'key': 'poop'}, {'key': 'value'}, {'key': 'value'}]
链接地址: http://www.djcxy.com/p/28005.html

上一篇: Make List of Unique Objects in Python

下一篇: Unable to write XML 1.1 documents in Java