如何在嵌套列表中的特定项目中添加数字?

时间:2016-12-22 15:58:51

标签: python arrays list nested

所以我正在参加一个以圣诞节为主题的学校项目并且有点卡住了。 从简介来看,该计划旨在向儿童提供礼物,因此我试图从这个列表中一次删除一个礼物:

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

但是,我还没有找到办法,因为我似乎无法从这个嵌套列表的一个部分减去一个单数。

简单来说,可以从这个列表中找到:

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

只需删除一个玩具,然后以列表

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

而不是玩具10。

如果是这样,请有人帮助我,因为这很快就会到期

提前谢谢

1 个答案:

答案 0 :(得分:0)

您应该在这里使用collections.OrderedDict。您可以将其转换为dict:

>>> 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

要将其转换回list tuples,请将dict.items()称为:

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