inventory = ['Sword','meat','meat']
肉一旦你使用它就会治愈你,需要一个。如何通过使用inventory.remove('meat')
?
答案 0 :(得分:1)
如何通过使用inventory.remove('meat')等东西来消除它?
是的,你完全正确。 inventory.remove('meat')
做你想做的事。
>>> inventory = ["sword", "meat", "meat"]
>>> inventory.remove("meat")
>>> inventory
['sword', 'meat']
答案 1 :(得分:1)
根据帮助文本(help(list.remove)
,强调我的):
的第一次出现
L.remove(value)
- 删除value
因此,您当前的代码没有问题:
>>> l = ['sword', 'meat', 'meat']
>>> l.remove('meat')
>>> l
['sword', 'meat']
话虽如此,您的广告资源的更好实施方式是dictionary {item: count}
:
>>> d = {'sword': 1, 'meat': 2}
>>> d['meat'] -= 1
>>> d
{'meat': 1, 'sword': 1}
您必须添加额外的检查(例如if d['meat']:
)以确保在减去之前计数非零,但这样可以更轻松地管理大量不同的项目。您可以使用collections.defaultdict
进一步简化代码。
答案 2 :(得分:0)
我试过这个例子并且有效:
inventory = ['Sword','Meat','meat']
long_sentence = "Meat heals you so once you use it it takes one away"
sent_list = long_sentence.split()
print "[before:]",inventory
for i in inventory:
if i in long_sentence:
inventory.remove(i)
print "[after:]",inventory
我认为您在列出大写"Meat"
和小写字母"meat"
工作时遇到问题