- 帖子
- 11
- 精华
- 0
- 积分
- 46
- 阅读权限
- 10
- 注册时间
- 2016-6-28
- 最后登录
- 2016-7-20
|
crossin先生 发表于 2016-6-29 16:33
这样肯定没法比的,你得把分数分离出来,变成数字类型才能比较大小排序,比如把每一项都变成
['xxxx', 20 ...
先生您好!我改了下代码把四个人的成绩变成了四个list:- # -*- coding: utf-8 -*-
- import re
- f = file('score.txt')
- lines = f.readlines()
- #print lines
- f.close()
- results = []
- for line in lines:
- #print line
- data = line.split()
- #print data
- sum = 0
- for score in data[1:]:
- sum += int(score)
- result = '%s \t: %d\n' % (data[0], sum)
- #print result
- score = re.findall(r"\d+\.?\d*", result)
- for s in score:
- s = str(s)
- results = []
- results.append('%s \t:' % data[0])
- results.append(s)
- results.sort(key=lambda l: (l[1]), reverse = True)
- #print results
- output = file('result.txt', 'w')
- print results
- output.writelines(results)
- output.close()
复制代码 最后输出results可以看到是这样的:- ['\xe5\xbc\xa0\xe9\xa3\x9e \t:', '200']
- ['\xe5\x88\x98\xe5\xa4\x87 \t:', '205']
- ['\xe5\x85\xb3\xe7\xbe\xbd \t:', '376']
- ['\xe6\x9b\xb9\xe6\x93\x8d \t:', '100']
复制代码 但是排序还是没起到作用,并且在result.txt里只输出了最后一个人的100分,这是为什么呀。。 |
|