如何将输入文本加入数组并按添加顺序分配序号?
问题描述
- 需求:把输入的文本添加到数组里,按添加顺序给每个文本分配序号。比如输入“bike”时,将它加入数组并打印「你的物品是第1号」,再输入其他单词就显示第2号,以此类推。
- 现有代码:
list = [] main = True shop = input("Enter the shop you are visiting: ") while main == True: choice = input("Enter your item: ") list.append(choice) print("The priority for this item is", list[-1])
- 当前问题:用
list[-1]只会打印刚添加的物品内容,没法显示它的顺序序号。
修复方案
你用list[-1]拿到的是数组最后一个元素的内容,不是它的位置序号。因为数组索引从0开始,但需求里的序号是从1开始算的,所以每次添加完元素后,数组的长度刚好就是这个元素的序号(比如加第一个元素后长度是1,对应第1号)。
修改后的代码:
items = [] # 别用list当变量名,会覆盖Python内置的list类型 main = True shop = input("请输入你要逛的商店:") while main: choice = input("请输入你的物品:") items.append(choice) # 用数组长度直接获取当前物品的序号 print(f"你的物品是第{len(items)}号")
额外优化说明:
- 把变量名
list改成items,避免和Python内置类型冲突 while main == True简化成while main,更符合Python的写法习惯- 把输入输出的英文提示换成了中文,和需求里的示例输出匹配
内容的提问来源于stack exchange,提问作者Caleb
相关产品推荐
相关产品推荐

