Re: [問題] 這樣的array要怎麼定義?

看板Python作者 (好冷啊~~)時間11年前 (2012/09/24 02:47), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《magiclass (課堂上玩數學)》之銘言: : 希望能做一個List,其中L[i]=(set1,set2,...) : 而每個set又包含兩大類元素(元素1,元素2) : 元素1和元素2都是數字串。 : 例: : L[0]=( ((1,2),(1,4)) , ((2,3),1) ) : L[1]=( ((4,5),(2,4)) , ((3,4),1) ) : 另外還要求可以用if條件句,去增加每個set的元素。 : 請問這樣的List要怎樣設計? 不知道這樣的設計符不符合要求: class MyList(object): def __init__(self): self.setList = [set(), set()] def addSet(self, setIdx, value): if isinstance(value, int): self.setList[setIdx].add(value) elif isinstance(value, list): self.setList[setIdx].add(tuple(value)) 因為list為mutable, 無法直接放到set中,必須先轉成tuple. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 223.142.232.150

10/04 00:08, , 1F
要可以放到set中是需要hashable
10/04 00:08, 1F

10/04 00:09, , 2F
只是在Python中基本上immutable<==>hashable
10/04 00:09, 2F

10/04 00:09, , 3F
不過自定義物件是個例外
10/04 00:09, 3F
文章代碼(AID): #1GNrbLzE (Python)
文章代碼(AID): #1GNrbLzE (Python)