2016-12-22 53 views
0

因此,我正在聖誕節主題的學校項目上工作,並且有點卡住了。 從簡單地說,該計劃旨在提供禮物給孩子,所以我想在同一時間從該列表中刪除一個存在:如何將數字添加到嵌套列表中的特定項目?

Presents = [["Toys",10],["Games",5],["Sweets",15]] 

不過,我還沒有找到一個方法來做到這一點的我似乎無法從這個嵌套列表的一個部分減去一個單數。

在簡單是有可能從該列表中:

Presents = [["Toys",10],["Games",5],["Sweets",15]] 

到,例如,只是刪除一個玩具,然後用列表作爲

Presents = [["Toys",9],["Games",5],["Sweets",15]] 

代替具有玩具10結束。

如果是的話,請能有人幫我,這是由於很快

謝謝你,我n advance

+3

您正在使用錯誤的數據格式。爲什麼不用字典呢?或者更好的是,使用['Counter()'](https://docs.python.org/3/library/collections.html#collections.Counter),這是一個專門針對每個金額的字典。 '禮物['玩具'] - = 1'然後是微不足道的。 –

+0

我還沒有真正玩過字典,特別是沒有counter(),但我一定會嘗試,謝謝! – Coder11

回答

0

您應該在這裏使用collections.OrderedDict。你可以將它轉換爲字典爲:

>>> from collections import OrderedDict # To also maintain order of original list 

>>> Presents = [["Toys",10],["Games",5],["Sweets",15]] 
>>> my_dict = OrderedDict(Presents) 
>>> my_dict 
OrderedDict([('Toys', 10), ('Games', 5), ('Sweets', 15)]) 

然後,以減少"Toys"鍵的值,這樣做:

>>> my_dict['Toys'] -= 1 
>>> my_dict['Toys'] 
9 

對於其轉換回的tupleslist,叫dict.items()爲:

>>> list(my_dict.items()) 
[('Toys', 9), ('Games', 5), ('Sweets', 15)] 
+0

非常感謝!我現在會試試這個。 – Coder11

相關問題