python - 在 Python 中运行函数时未定义参数
问题描述
使用以下代码:
def sortByAveScore (bList):
for x in range(len(aNameLst)):
avgsorted=sorted(average)
sortlist=list(zip(aNameLst,avgsorted))
sortname=sorted(sortlist,key=lambda x: x[1])
return(sortname)
sortByAveScore (bList)
我得到参数未定义的错误,但如果我取消参数,它工作正常。我做错了什么或者我对此不理解?我是编程新手,所以我有点困惑。
def sortByAveScore ():
for x in range(len(aNameLst)):
avgsorted=sorted(average)
sortlist=list(zip(aNameLst,avgsorted))
sortname=sorted(sortlist,key=lambda x: x[1])
print(sortname)
sortByAveScore ()
解决方案
您似乎正在使用本地 (avgsorted, sortlist, ...) 和全局 (aNameLst, average) 变量。是作为参数传递给函数的bList
,所以当你尝试做的时候sortByAveScore(bList)
, bList
在函数之外不存在。这就是为什么如果你这样做sortByAveScore()
(不带参数)它不会显示错误,因为没有未创建的东西被传递给函数。
您可能想创建一个与 相同类型的 Object ,bList
然后将其传递给函数(看起来您可能会更改aNameLst
为bList
,否则您不会在bList
任何地方使用)。
推荐阅读
- laravel - Laravel:添加分页查询
- php - 如何在laravel中创建从mysql数据库中检索到的一行2个项目
- amazon-web-services - 如何为每个代码签入禁用 aws codepipeline 触发器
- strongloop - 在 loopback4 中有任何我们可以用来在生产中发布的分发文件夹吗?
- python - 如何检查输入是否有多个空格(“”)?
- c# - 制作倒数计时器
- r - ggplot2 - 结合 geom_bar 和 geom_line 图例
- python - Pandas Upsample 将多指标月数据重新采样为多指标周数据?
- powershell - 从 powershell 发送邮件
- node.js - 如何用node.js中的图像替换docx文件中的书签文本?