列表中出现随机换行符

时间:2014-11-22 15:50:09

标签: python python-3.x sqlite

问题

我目前遇到列表问题。每当我从表格学生(班级)中获取数据并将其放入列表中。我使用以下代码行来执行此操作

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", ' ')

可以用于替换,但看起来它不起作用。

1 个答案:

答案 0 :(得分: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',.....]