比较二维列表对象

时间:2016-04-10 16:37:28

标签: python python-3.x

我不确定之前是否有这个问题,但我找不到任何帮助。 我正在建立一个游戏,我有一个二维的对象列表,我们称之为inventoryloot。我需要比较它们,看看我已经有哪些。项目是我们有名称,数量和描述的列表。

我在想像

这样的东西
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

1 个答案:

答案 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]?