如何从dicts列表中获取所有唯一ID?

时间:2009-10-22 12:35:54

标签: python

假设您有一个像{'id': 1, 'other_value':5}

这样的词典列表

所以也许;

items = [{'id': 1, 'other_value':5}, {'id': 1, 'other_value2':6}, {'id': 2, 'other_value':4}, {'id': 2, 'other_value2':3}]

现在,您可以假设这是数据的一小部分。可能有数千人。我也没有指定结构,它是给我的。

如果我只想获取ID,我可以这样做:

ids = [i[id] for i in items]

但是,您会注意到原始数据中存在重复的ID。所以问题是;你怎么能整齐地得到唯一的ID?

我希望有类似的东西:

ids = [i[id] for i in items if not in LIST]

但据我所知,没有办法访问生成器中的列表。

当然我可以做一个for循环,并且很容易就这样做。我只是想知道是否有更简洁的方法来做到这一点。

2 个答案:

答案 0 :(得分:7)

如果你想要唯一的id,你可以使用一套:

set(i['id'] for i in items)

答案 1 :(得分:1)

set(i['id'] for i in items)

但您可能会考虑另一种数据结构,例如列表的字典:

items = {1: [5, 6], 2: [2, 4]}