2012-07-27 177 views
0

我有csv上的各種行,但我只是想排序那些誰高於0,因爲我也有負數,所以我試了這個,它似乎並不工作蟒蛇 - 條件排序

在HTML
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 

IM outputing

是的,它寫的不好,我知道,我還在學習的語言。這只是代碼的一部分,因爲你們可以得到一般想法。

時,其分類我得到的東西像75 74 50 -30 2月15日等等等等

我想這是75 74 50 15二,在不遜色的數字爲0。

你們可以幫忙我?

+0

清理那個代碼?有一個很大的錯誤...它有什麼錯誤? 「似乎不起作用」並不真正有幫助。 – 2012-07-27 22:50:28

+2

嘗試過濾器而不是排序 – mrok 2012-07-27 22:50:55

+0

mrok是正確的你想過濾...或列表理解 – 2012-07-27 22:54:24

回答

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

謝謝unutbu,這工作幾乎了不起,除了事實,即使它不給我任何數字低於0,結果aren我不能以任何順序察覺。你是否足夠讓它從最低到最高顯示,反之亦然? – 2012-07-27 23:10:23

+0

@DinarteTeixeira:我修改了我的答案(通過添加'key'參數)按照第24列中的整數值進行排序。 – unutbu 2012-07-27 23:50:55