我编写了从文本文件中检索名称并按字母顺序排序的代码。但是,如何不打印重复的名称?例如,代码是
ClassA= open('A.txt','r')
Classsort= csv.reader(ClassA,delimiter=',')
if sorting==1:
name_sort=sorted(Classsort,key=operator.itemgetter(0))
for everyline in name_sort:
print (everyline)
这张照片:
[' abba', '1']
[' bety', '3']
[' loli', '0']
[' yano', '4']
[' yano', '1']
但我要打印出来
[' abba', '1']
[' bety', '3']
[' loli', '0']
[' yano', '4,1']`
或者只打印[' yano', '4']
,
因为我想把每个学生的最高分数打印出来
编辑: 嗨,答案很好,谢谢。但我还有最后一个问题,因为如果名字和分数已经被添加到结果dict中,我是否可以这样做,只保存用户最后3个分数?也就是说,如果雅诺完成了两次以上的测验,得了3.7分。只打印最后3个结果:
{' abba': ['1'], ' betyy': ['3'], ' loli': ['0'], ' yano': ['1', '3', '7'], ' gary': ['10'], ' zee': ['4']}
使用
dict
并存储每个人的整个结果列表或仅存储最大结果:或者只是麦克斯:
注意:dict不是有序的,所以它们按顺序打印出来的事实是巧合,如果您想让它们按顺序(或者查看
collections.OrderedDict
)的话,您需要显式地遍历已排序的键相关问题 更多 >
编程相关推荐