python - 用条件排序

时间:2012-07-27 22:48:23

标签: python sorting

我在csv上有各种各样的行,但我只想对那些高于0的人进行排序,因为我也有负数,所以我尝试了这个,但似乎无法正常工作

try :
    ligacsv = csv.reader(open('%s/liga.csv', 'r')%BASE_DIR, delimiter='|')

except IOError, e

try:
    ligacsv = csv.reader(open('C:/www/liga.csv', 'r'), delimiter='|')
except: ligacsv=[]


d = sorted(ligacsv, key=lambda x: (int(x[1])>'0'), reverse=False)

for linha in d:
    for i in linha[0:1]]:
        print '<td align="right">%s</td>' %i

我在html输出

是的,我写的很难写,我还在学习这门语言。这只是代码的一部分,因为你们得到了一般的想法。

当它的排序我得到像75 74 50 -30 2 15等等

我希望它是75 74 50 15 2.没有数字低于0。

你们能帮助我吗?

1 个答案:

答案 0 :(得分:1)

d = sorted([row for row in ligascv if int(row[23])>0],
           key = lambda row: int(row[23]),
           reverse = False)