问题
我目前遇到列表问题。每当我从表格学生(班级)中获取数据并将其放入列表中。我使用以下代码行来执行此操作
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 :(得分: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',.....]