[英]Removing duplicates from list in Python
我是编程新手,我真的很想从列表中删除一定数量的重复项。
我正在制作基于文本的游戏,并且正在尝试建立一个可以出售物品的商店。
例如,如果一个玩家在他的库存中有 3 把剑,并且想要出售其中的 2 把,将其中 1 留在他的库存中,我不知道如何在我的代码中实现这一点。
示例代码:
选项是指他们出售的物品,例如“剑”。 valitems 是游戏中各种物品的字典。
option4 = input('Enter selling quantity: ')
if option4 <= PlayerIG.inventory.count(option):
PlayerIG.inventory -= option4 * [option]
PlayerIG.gold += valitems[option]['SPrice']
我知道这不起作用,但是使用“PlayerIG.inventory += option4 * [option]”让我的商店系统的买方正常工作,但由于某种原因使用相同的代码但从库存中删除,它似乎不起作用。
您可以使用list.remove
方法来做到这一点。 它会删除您传递的值的第一个实例,因此您必须执行此option4
次。
if option4 <= PlayerIG.inventory.count(
# delete `option` from inventory `option4` number of times
[PlayerIG.inventory.remove(option) for i in range(option4)]
gold += valitems[option]['SPrice']
您可以使用collections
模块中的defaultdict
来管理您的库存。
from collections import defaultdict
# create a default dict with 0 as the default value
inventory = defaultdict(int)
您可以按如下方式在库存中添加或删除项目:
# add
inventory[item] += number_of_items
# remove
number_of_items = input('Enter selling quantity: ')
item = input('Enter item to sell: ')
if number_of_items <= inventory[item]:
inventory[item] -= number_of_items
请记住, option
和item
需要是可散列的才能工作。 如果它们是字符串,它们是可散列的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.