我有一個列表列表,每個列表中有3個項目(爲了示例):產品類型,產品顏色和產品數量。將元組作爲值追加到字典中現有的鍵
我想要做的是創建一種字典,每種產品類型都是一個關鍵字,顏色和數量都是值。也就是說,我要找的是這樣的結構:
KEY1:(tuple1),(tuple2),...
或
KEY1:[(tuple1),(tuple2) ...]
事情是,正如你所知,你不能真正追加元組作爲鍵值在字典中的值。
這裏有一個簡單的例子,用打轉轉:
my_list = [["ball","red",2],["ball","blue",5],["ball","green",7],["shirt","large",5],["shirt","medium",9],["shirt","small",11]]
inventory_dict = {}
for item in my_list:
if item[0] not in inventory_dict:
inventory_dict[item[0]] = (item[1],item[2])
else:
inventory_dict[item[0]].append((item[1],item[2]))
當我試圖做這樣的事情:
my_list = [["ball","red",2],["ball","blue",5],["ball","green",7],["shirt","large",5],["shirt","medium",9],["shirt","small",11]]
inventory_dict = {}
for item in my_list:
my_tuple = (item[1],) + tuple(item[2])
if item[0] not in inventory_dict:
inventory_dict[item[0]] = my_tuple
else:
inventory_dict[item[0]].append(my_tuple)
通過this answer我得到了一個「類型錯誤的啓發:‘詮釋’對象不是可迭代「錯誤。
,當我試圖用更換my_tuple:
my_tuple = list((item[1],item[2]))
通過this answer我得到了一個結果,我不能工作,這樣的形式,啓發:
{'ball': ['red', 2, ['blue', 5], ['green', 7]],
'shirt': ['large', 5, ['medium', 9], ['small', 11]]}
我之所以能夠」 t與它一起工作是,例如,每個值的len值應爲4。第一個類型及其數量是值列表的單獨元素。
我應該提到,在我的代碼的下一步中,我計劃對數量做一些哮喘。
希望我能夠很好地解釋我的問題,並希望你能幫助! 謝謝:)
arrrrggggg! !我太親密了! :)你能想象我花了多少時間試圖找出答案,甚至寫出這個問題,而解決方案就在那裏! *愚蠢愚蠢的愚蠢* – Optimesh
@Optimesh:嘿,不要對自己太難。任何人的眼睛都傾向於看着那些嵌套的括號和括號:-) – BrenBarn
謝謝你。 :)任何想法爲什麼簡單的導入「從集合導入defaultdict」將無法正常工作('集合未定義'),但導入集合呢? – Optimesh