2009-10-22 100 views
0

假設你有一個這樣的字典列表{'id': 1, 'other_value':5}如何從字典列表中獲取所有唯一ID?

所以也許;

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循環,並輕鬆地做到這一點。我只是想知道是否有一個更簡潔的方式來做到這一點。

+0

d0ougal,這是一個初學者水平的問題,沒有人說你是。請不要移除標籤。 – SilentGhost 2009-10-22 13:47:04

回答

7

如果你想唯一的ID,你可以使用一組:

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

你不必自己創建中間列表。 'set(i ['id'] for i in items)'會做。 – nosklo 2009-10-22 13:36:56

+0

謝謝,我修好了 – 2009-10-22 13:45:59

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

但你可能完全考慮另一種數據結構,列表例如字典:

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