2017-10-15 63 views
0
import csv 

f =open('Scores.csv') 
csv_f = csv.reader(f) 
    #next(readCSV) 

users = [] 
quizzes = [] 
grades = [] 

for row in csv_f: 

    user = row[0] 
    quiz = row[2] 
    grade = row[5] 

    users.append(user) 
    quizzes.append(quiz) 
    grades.append(grade) 

whatUser = input ("User: ") 

if whatUser in users: 
    coldex = users.index(whatUser) 
    theQuiz = quizzes[coldex] 
    theGrade = grades[coldex] 

    print("Username: ", whatUser) 
    print("Quizzes: ", theQuiz) 
    print("Grades: ", theGrade) 

我试图让该程序查找行[0]中的所有用户,然后在行[2]和[5]上打印相关信息。正如你在附图中看到的那样,它只能找到1个Bob,而不是代码运行时的第二个。Python CSV如何遍历列表

Used file

+3

时要显示的文字,不要附加图像。这对我们来说是不必要的阅读。但是,嘿,嗨!所以,你忘了问一个问题,而且你也没有显示你迄今为止尝试过的解决方案。 –

回答

1

更改最后部分:

for i in range(len(users)): 
    if users[i] == whatUser: 
     theQuiz = quizzes[i] 
     theGrade = grades[i] 

     print("Username: ", whatUser) 
     print("Quizzes: ", theQuiz) 
     print("Grades: ", theGrade) 

index(x)只会返回元素x的第一指标。因此,你必须循环和处理所有匹配。

1

你也可以遍历用户和打印每一个匹配: