2012-09-05 51 views
2

我有一個2D字典例如,所有的唯一的輔助鍵:得到字典中的蟒蛇

d[a1][b1] = v1 
d[a1][b2] = v2 
d[a2][b1] = v3 
d[a2][b3] = v4 

在上面的例子中唯一的輔助鍵是B1,B2,B3?

我如何返回列表[B1,B2,B3]在Python? 感謝

回答

3
s = list(set(key2 for key1 in d for key2 in d[key1])) 
1

由於字典,可能還有很多方面,着手從二級獲取值的列表的方式就是通過字典循環正常。

我的建議是你要考慮可能使用類似itertools。 Itertools可以幫助您快速而有趣地處理像您這樣的用例。

+0

爲了使這個更具體一點,'名單(套(itertools.chain.from_iterable(d [K]對於k在d)))'會做的伎倆,但我不知道這是不是好多了一個嵌套的listcomp或不。 'list(set(itertools.chain.from_iterable(d.values())))'也應該工作。 – DSM