我开始构建一个代码,用于打印出人们的姓名以及他们在测试中按升序排列的分数。它设法打印出旁边有分数的名字,但在它意外地重复了几个名字之后就是这样。
info = open("resultsA.txt", "r")
for line in info:
x = line.split(",")
names.append(x[0])
scores = x[1] + x[2] + x[3]
ascending = sorted(scores)
names.append(ascending)
print(*names, sep="\n")
答案 0 :(得分:0)
你的循环正在做两件事。首先,它将一些新值附加到\b
列表(另一个排序分数列表,加上一个字符串)。然后它打印列表的内容,由换行符分隔。这会重复列表中的几个项目,正如您在输出中看到的那样(缩写,因为我无法输入所有列表内容):
names
你的问题表明这不是你想要的。我怀疑你不应该打扰一个列表,只是在循环中直接 Korbin # these first two lines are from the first iteration of the loop
[ ... ] # 1
Korbin # the next four are from the second iteration
[ ... ] # 2
Bob # 2
[ ... ] # 2
Korbin # The next six are from the third iteration
[ ... ] # 3
Bob # 3
[ ... ] # 3
Dylan # 3
[ ... ] # 3
Korbin # The next eight (which I'll not show all of) are from the fourth iteration
[ ... ] # 4
# etc.
其他统计信息的名称和列表,或者你不应该在循环中打印,只使用一个print
最后打电话。
这是一个直接在循环中进行打印的实现,同时修复了行解析中的小问题:
print