在Python中创建唯一对象列表

时间:2015-08-09 02:42:41

标签: python list unique

可以在Python中“填充”一个数组,如下所示:

1
2
3
4
5
6
7
8
9

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

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

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

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

鉴于Python没有> a[0]['key'] = 'another value' > a [{'key': 'another value'}, {'key': 'another value'}, {'key': 'another value'}] 方法(这是我寻找的第一件事),如何创建唯一对象而不需要声明clone()循环并调用for要添加它们吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

一个简单的列表理解应该可以解决这个问题:

>>> 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'}]