我不确定之前是否有这个问题,但我找不到任何帮助。
我正在建立一个游戏,我有一个二维的对象列表,我们称之为inventory
和loot
。我需要比较它们,看看我已经有哪些。项目是我们有名称,数量和描述的列表。
我在想像
这样的东西ownd = []
for item in self.inv:
if item[0].name in loot:
ownd.append(item)
但是,我应该将项目[0]与项目[0]在inv中进行比较,但我有脑筋或某些原因我无法弄清楚如何做到这一点。有人可以帮助或推动我朝正确的方向发展。谢谢!
PS。我知道有些人认为这是一个愚蠢的简单问题,但严重的是我被困住了,需要帮助!
编辑:
来自班级的更多代码:
class Inventory(object):
inv = []
def __init__(self, name):
self.ownr = name
self.loc = "player_data/" + name
def add_item(self, item, amount):
for obj in self.inv:
if obj[0].name == item.name:
obj[1] = obj[1] + amount
return 1
self.inv.append([item, amount])
return 0
def compare_to_loop(self, loot, amount):
ownd = []
for item in self.inv:
if item[0].name in loot:
ownd.append(item)
return ownd
答案 0 :(得分:0)
如果我理解你的问题,你必须列出库存和战利品,你想要构建一个新的列表,拥有你可以在同一位置的两个列表中找到的所有元素?
然后这应该工作
inv = [1, 2, 3, 4, 5]
loot = [2, 1, 3, 4, 6]
owned = [i for i, l in zip(inv, loot) if i == l]
在这个例子中,拥有应该是[3,4]?