首页 > 解决方案 > 使用函数一次附加多个列表

问题描述

我尝试在将用户输入附加到列表中的函数中使用列表作为参数

itemno, itemdescrip, itempr = [], [], []

def inpt(x):

    n=0
    while n < 10:
        n+=1
        x.append(int(input("What is the item number?")))


inpt(*itemno)
print(itemno)

当我在函数中输入 1 时,我希望输出为 1,但出现错误:TypeError: inpt() missing 1 required positional argument: 'x'

标签: pythonpython-3.x

解决方案


当您*在函数调用中为序列添加前缀时,您是在告诉它解压序列;也就是说,将序列的每个成员作为函数的单独参数呈现。在您的代码中:

inpt(*itemno)

由于itemno它是空的,因此您告诉它不要将任何内容解压缩到函数参数中。因此,该函数调用等效于:

inpt()

由于您的inpt()函数需要一个参数,因此它会引发该错误。我不确定您为什么认为这*是必需的,但简单的解决方法是删除它,它将列表本身传递给函数:

inpt(itemno)

推荐阅读