Python:增加循环和调用函数中的索引

2024-09-29 23:23:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在学习Python。我有下面的代码要求用户输入一些细节。但是当我调用这个函数时,它不是增加index,而是改变现有记录

我能在这里得到一些帮助吗

menuList = {}

def updateMenu():
    item = input('Item Name: ')
    price = int(input("Enter Price: "))
    key = 1
    menuList[key] = {'item':item,'price':price}  
    return menuList 

Tags: key函数代码用户nameinputindexdef
3条回答

每次调用updateMenu()key都设置为1

您需要将其更改为:

key+=1

每次调用updateMenu函数时,都使用相同的键1并覆盖以前的数据!所以你的menuList总是有一个键1

必须将key定义为全局变量,并在每次调用函数时增加它

此外,您还可以为dictionary使用其他一些键,例如,如果您认为它是唯一的,您可以使用item

此外,如果您不打算在menuList字典中使用这些整数键,我建议您使用list并将其附加到它

您正在对key=1进行硬编码,因此用户输入将始终引用与键1关联的值。 menuList也是由第一行代码定义的全局变量。使用相同的名称命名局部变量有点让人困惑。最好执行以下操作:

menuList = {}

def updateMenu():
    global menuList
    key = len(menuList.keys()) + 1  # assumes no keys are ever deleted
    item = input('Item Name: ')
    price = int(input("Enter Price: "))
    menuList[key] = {'item':item,'price':price}

现在,当您调用updateMenu时,不需要将其设置为等于menuList

updateMenu()
# answer the prompts
# menuList will get updated

相关问题 更多 >

    热门问题