python - 使用函数一次附加多个列表
问题描述
我尝试在将用户输入附加到列表中的函数中使用列表作为参数
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'
解决方案
当您*
在函数调用中为序列添加前缀时,您是在告诉它解压序列;也就是说,将序列的每个成员作为函数的单独参数呈现。在您的代码中:
inpt(*itemno)
由于itemno
它是空的,因此您告诉它不要将任何内容解压缩到函数参数中。因此,该函数调用等效于:
inpt()
由于您的inpt()
函数需要一个参数,因此它会引发该错误。我不确定您为什么认为这*
是必需的,但简单的解决方法是删除它,它将列表本身传递给函数:
inpt(itemno)
推荐阅读
- flutter - 使用 onPressed() 创建一张新卡片
- django - 我希望我的外键值等于用户选择
- php - 链接 MySQL 表中的数据的最佳实践
- powershell - 在 Powershell 中为 SID 用户设置 HKCU 注册表项的特殊权限
- ios - 文本字段中的 Border 和 Padding 样式不适用于 swift5
- html - 生产中可见的源代码:创建反应应用程序
- api - 我需要在不超时的情况下保持测试至少 30 分钟
- php - How to make sure the correct class file is loaded when calling / extending class
- arrays - 如何重新排列数据
- java - 如何使用 Java 从 URL 中删除一部分