在Python中对CSV文件排序有问题(按名字排序,但也要打印第二个名字和三个分数中最高的一个)

2024-09-30 01:36:13 发布

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

解释

在一个学校项目中,我被要求让老师用几种方式查看一些分数,尽管每次我运行程序时都会遇到这样的错误:

Traceback (most recent call last):
  File "\\shs-sr-fap-01\11-62$\School\Computing\A453\Task 3\Teacher Score Viewer.py", line 53, in <module>
    byalphabet()
  File "\\shs-sr-fap-01\11-62$\School\Computing\A453\Task 3\Teacher Score Viewer.py", line 36, in byalphabet
    for row in sorted(byalphabet, key=lambda x:x(int(x[2]), int(x[3]), int(x[4])), reverse = True):
  File "\\shs-sr-fap-01\11-62$\School\Computing\A453\Task 3\Teacher Score Viewer.py", line 36, in <lambda>
    for row in sorted(byalphabet, key=lambda x:x(int(x[2]), int(x[3]), int(x[4])), reverse = True):
TypeError: 'list' object is not callable

这是我的代码-我有一个菜单系统,它询问你想如何排序,因为现在我不做菜单的类部分。任何帮助都将不胜感激。问我你是否需要解释。在

(In case you need to know what resides on each row of my CSV file - First name, last name, Score 1, score 2, score 3, Class (A, B or C [Just ignore this for now])

^{pr2}$

Tags: inpytaskviewerfileintscoreteacher
1条回答
网友
1楼 · 发布于 2024-09-30 01:36:13

您得到的错误是:

TypeError: 'list' object is not callable

从线路上:

^{pr2}$

这是因为byalphabet的元素不是函数,但是您试图用x(...)调用它们。我猜你是想用元组来代替:

for row in sorted(byalphabet, key=lambda x:(int(x[2]), int(x[3]), int(x[4])), reverse = True):

另外,对函数和列表使用相同的名称是不好的:

def byalphabet():
...
byalphabet = []

相关问题 更多 >

    热门问题