Python:怪物列表需要怪物帮助,如何以正确的方式填写我的列表?

时间:2016-09-17 15:46:07

标签: python arrays list

所以我昨天开始使用Python,对于我的第一个项目,我想让怪物互相争斗。

我还在开始,我想用我创建的怪物填充一个列表。我的怪物函数询问它应该创建多少怪物并返回一个包含所有怪物的列表。

不知怎的,我的代码错了,只回馈了一个怪物:(

def create_monster(number):
    monster = [0] * number

    for i in monster:
        """monster = [ID,GENDER,NAME,HP,ATK,DEF,SATK,SDEF,AGIL,]"""

        monster[i] = [monster_identifier(), monster_gender(), None]
        monster[i][2] = monster_name(monster[i][1])



    return monster

此代码的输出用于数字= 3,例如

[[3, 'Male', 'Berid'], 0, 0]

但应该是这样的

[[1,'Male','Berid'],[2,'Female','David'],[3,'Male','Holger']]

2 个答案:

答案 0 :(得分:3)

你的循环:

for i in monster:

迭代monster列表中的。你没有得到索引,因为Python循环是foreach constructs

您的列表中只包含数字0

monster = [0] * number

因此i所有0都设置为monster[i]。这反过来就是为什么你只改变索引0处的元素,在你编写monster[0]的任何地方都可以为同样的结果编写def create_monsters(number): monsters = [] # empty list for i in range(number): # loop number times gender = monster_gender() monster = [monster_identifier(), gender, monster_name(gender)] monsters.append(monster) # add to the list at the end return monsters

不是使用零预先构建列表,而是在循环时使用list.append()添加新元素,并使用range()计算您创建的怪物数量:

monsters

我将函数和列表重命名为复数 if (mail($recipient, $subject, $email_content, $email_headers)) { // Set a 200 (okay) response code. http_response_code(200); } else { // Set a 500 (internal server error) response code. http_response_code(500); echo "Oops! Something went wrong and we couldn't send your message."; } ,表明这不仅仅是一个怪物。

答案 1 :(得分:1)

简单地替换

monster = [0] * number

monster = range(number)