我想創建一個自定義類並使用該類的實例作爲關鍵字的字典。檢查一個類實例(在這種情況下作爲字典密鑰)是否具有與同一類的另一個實例相同的屬性
然後,我想創建該類的其他實例,並檢查所有屬性是否與我作爲該字典的鍵添加的實例相同。
我想我在這,因爲失敗時,我嘗試使用:
if my_object in my_dict:
my_dict[my_object]['another_dict_key'].append('Found you!')
else:
my_dict.update(my_object:{'another_dict_key':[]})
我覺得它永遠不會使它的if語句,因爲my_object永遠比不上爲「my_object」實例已經是一個字典裏關鍵,因爲他們是不完全一樣的情況下 - 即使它們具有相同的屬性 -
我讀了關於這個其他職位有點和哈希和EQ的東西,但我仍然困惑。我覺得也許有一個簡單的方法來做到這一點,否則我可以嘗試完全採用其他方法。但想問。
這是在代碼更飽滿的樣子,我在上面粘貼了以上內容只是對排序的隔離問題,這裏是它在深入瞭解一個更我想,如果這能幫助,順便說一句:
master_dict = {}
i = 0
for order in orders:
normalized_structure = Normalized_Structure(order)
if normalized_structure in master_dict:
if 'ORD_INSTRUCTIONS' in master_dict[normalized_structure]:
master_dict[normalized_structure]['ORD_INSTRUCTIONS'].append(Normalized_Order_Instructions(order))
else:
master_dict[normalized_structure]['ORD_INSTRUCTIONS'] = Normalized_Order_Instructions(order)
else:
master_dict.update({normalized_structure:{'STRUCTURE_ID':i, 'ORD_INSTRUCTIONS':[]}})
master_dict[normalized_structure]['ORD_INSTRUCTIONS'].append(Normalized_Order_Instructions())
[python:my classes as dict keys可能重複。如何?](http://stackoverflow.com/questions/5221236/python-my-classes-as-dict-keys-how) –
嗨史蒂文,我看着,但不知道如何做到這一點,而不設置哈希/ eq精心列出每一個屬性。對於擁有20個屬性的課程,有沒有捷徑可以讓它更合理? – 10mjg
我想你可以做'def __eq __(self,other):返回所有(v == getattr(other,k)for v,vars(self).items())'和類似的哈希,瞭解如何自定義哈希實現。你可能只需要一些簡單的東西。 –