2014-11-22 28 views
0

問題出現在列表

我目前具有列出的問題隨機換行符。每當我從表格學生(班級)獲得數據並將其放入列表中。我使用下面的代碼行要做到這一點

classes = [list(i) for i in query("SELECT class FROM students GROUP BY class").fetchall()] 

表學生包含

+----+---------+-------+ 
| ID | name | class | 
+----+---------+-------+ 
| 1 | John | 901 | 
| 2 | Pat  | 904 | 
| 3 | Hal  | 911 | 
| 4 | Bill | 905 | 
| 5 | Lyon | 902 | 
| 6 | Lauren | 907 | 
| 7 | Phillip | 908 | 
| 8 | Charlie | 906 | 
| 9 | Amy  | 911 | 
| 10 | Paul | 904 | 
| 11 | Lewis | 903 | 
+----+---------+-------+ 

然而,當我

print(classes) 

結果是

[['901\n'], ['902'], ['903\n'], ['904'], ['905'], ['906'], ['907'], ['908'], ['911\n']] 

問題

爲什麼新的字符在那裏,有沒有辦法擺脫它們?我原以爲這

for e in classes: 
     e = str(e).replace("\n", ' ') 

本來可以替換,但它似乎不工作。

+0

sqlite *中的數據*包含這些換行符。 – 2014-11-22 15:53:26

+0

有什麼辦法可以避免使用sqlite嗎? – Boaprivate 2014-11-22 15:55:02

+1

請參見[使用Python處理Sqlite數據庫中的新行字符「\ n」](http://stackoverflow.com/q/18942258) – 2014-11-22 15:55:52

回答

0

您無法將列表轉換爲字符串。使用enumerate訪問每個迴路中的任何條目的指標,也可作爲classes是你需要使用索引j[0]訪問條目的嵌套列表:

for i,j in enumerate(classes): 
    if '\n' in j[0]: 
     classes[i] = str(j[0]).replace("\n", ' ') 

那麼結果應該是:

['901','902','903',.....]