python-带条件的排序

python-带条件的排序,python,sorting,Python,Sorting,Im在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=[]

Im在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
试试看:
ligacsv=csv.reader(打开(“%s/liga.csv”,“r”)%BASE_DIR,分隔符=“|”)
除了IOE错误
尝试:
ligacsv=csv.reader(打开('C:/www/liga.csv','r'),分隔符='|')
除:ligacsv=[]
d=排序(ligacsv,key=lambda x:(int(x[1])>'0'),reverse=False)
对于d区的linha:
我在林哈[0:1]]:
打印“%s”%i
我用html输出

是的,写得不好我知道,我还在学这门语言。这只是代码的一部分,让你们了解大概的意思

当它被分类时,我会得到像757450-30215之类的东西

我希望是75 74 50 15 2。没有小于0的数字


你们能帮我吗?

介意清理一下代码吗?它有很多问题。。。有什么错误吗?“似乎不起作用”并没有真正的帮助。mrok是对的,您需要过滤器。。。或者是一个列表理解谢谢你unutbu,这几乎是不可思议的,除了一个事实,虽然它没有给我任何低于0的数字,但结果不是我能感觉到的任何顺序。您是否愿意让它从最低到最高显示,或者从最高到最低显示?@Dinarteeixeira:我已经修改了我的答案(通过添加
参数),以便根据第24列中的整数值进行排序。
d = sorted([row for row in ligascv if int(row[23])>0],
           key = lambda row: int(row[23]),
           reverse = False)