天天看點

python擷取set中某些元素_在Python中檢索特定的set元素

本質上,這就是我想要做的:

我有一個要添加對象的集合.這些對象具有自己的相等方法,并且集合中絕對不應包含與集合中另一個元素相同的元素.但是,當嘗試插入一個元素時,如果它等于另一個元素,我想記錄兩個元素的合并版本.也就是說,對象具有一個“ aux”字段,該字段在其相等方法中未考慮.完成添加操作後,我希望元素的“ a​​ux”字段包含我嘗試添加的相等元素的所有“ aux”字段的組合.

我的想法是,好的,在将元素添加到集合之前,請檢查它是否已經在集合中.如果是這樣,請将其從集合中拉出,合并兩個元素,然後再放回去.但是,Python集合中的remove方法不會傳回任何内容,而pop方法會傳回一個任意元素.

我可以使用Python中的集合做我想做的事情,還是我吠錯了樹(正确的樹是什麼?)

解決方法:

聽起來你想要一個defaultdict

from collections import defaultdict

D = defaultdict(list)

D[somekey].append(auxfield)

編輯:

要使用合并功能,可以合并人們在注釋中給出的代碼

D = {}

for something in yourthings:

if something.key in D:

D[something.key] = something.auxfield

else:

D[something.key] = merge(D[something.key], something.auxfield)

标簽:iteration,combinations,set,python

來源: https://codeday.me/bug/20191123/2066079.html