1
我有一個對象列表(集羣),每個對象都有一個屬性vertices
這是一個數字列表。我想構造一個字典(使用一個班輪),使得這個鍵是一個頂點號,這個值是實際列表中相應的集羣的索引。構建一個合併多個列表的字典
例:
clusters[0].vertices = [1,2]
clusters[1].vertices = [3,4]
預期輸出:
{1:0,2:0,3:1,4:1}
我想出了以下內容:
dict(reduce(lambda x,y:x.extend(y) or x, [
dict(zip(vertices, [index]*len(vertices))).items()
for index,vertices in enumerate([i.vertices for i in clusters])]))
它的工作原理......但有沒有這樣做的更好的辦法這個?
也評論上述代碼的效率。
PS:頂點列表不相交。
您的意思是預期輸出:{1:0,2:0,3:1,** 4:1 **}? – kasyc 2012-01-11 10:55:59
對不起..更新了:) – Graddy 2012-01-11 11:03:46
我建議你寫一個函數來做到這一點,然後你的一行是一個函數調用。 [可讀性計數](http://www.python.org/dev/peps/pep-0020/) – MattH 2012-01-11 11:07:54