python-带条件的排序
Im在csv上有不同的行,但我只想对那些大于0的行进行排序,因为我也有负数,所以我尝试了这个,但它似乎不起作用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=[]
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)