检查列表中是否有多处内容?

时间:2017-11-11 11:00:36

标签: python python-3.x list dictionary

我有一个怪物字典,我通过选择一个随机整数并将其与字典值中的第一个数字(它是一个列表)相匹配来获取敌人

#NAME: ID, HP, MP, ATK, DEF, MGATK, MGDEF, SPEED, EXPSHARE, IMG
monsters_list = {"BOXROACH": [1, 20, 5, 5, 5, 5, 5, 5, 5, pg.image.load("boxcroach.png")],

for i in range(amt):
            monster = random.randint(1, len(self.monsters))
            for key in self.monsters:
                if self.monsters[key][0] == monster:
                    monsters.append([key, self.monsters[key]])

所以amt是1到3之间的数字,它决定了多少怪物将面对,然后它通过字典来匹配值的第一个索引,然后将怪物附加到列表中,最终看起来像这样:

[['SLUGGER', [2, 20, 10, 5, 3, 8, 7, 11, 7, <Surface(150x160x32 SW)>]], ['SLUGGER', [2, 20, 10, 5, 3, 8, 7, 11, 7, <Surface(150x160x32 SW)>]], ['MEAN SPIRIT', [10, 15, 15, 5, 5, 5, 5, 5, 20, <Surface(100x100x32 SW)>]]]

(忽略哑名)
我想做的是检查同一个敌人是否有多个,然后以某种方式区分它们。我本来打算将所有索引添加到另一个列表然后比较它们,但是有更有效的方法吗?感谢。

1 个答案:

答案 0 :(得分:1)

你可以这样做: 检查您的随机数,以便不相同,以便您的怪物会有所不同。

如果随机数再次重复,则执行下一个随机数。

如果你想在某些方面改变它们,那么制作怪物细节类会更好,如果它们被重复,那么为每个怪物更改一些参数。