>>> strs = "1,2,3\n4,5,6"
>>> strs.splitlines()
['1,2,3', '4,5,6']
>>> [x.split(',') for x in strs.splitlines()]
[['1', '2', '3'], ['4', '5', '6']]
有关str.splitlines的帮助:
>>> print str.splitlines.__doc__
S.splitlines(keepends=False) -> list of strings
Return a list of the lines in S, breaking at line boundaries.
Line breaks are not included in the resulting list unless keepends
is given and true.
将列表理解与
str.split
和str.splitlines
一起使用:有关
str.splitlines
的帮助:如果输入是长度为N的M行,那么这里的生成器占用O(N)空间而不是O(M*N):
它返回一个迭代器,而不是一个具体的列表,以减少内存消耗。您可以在for循环或类似的循环中使用结果,如果您确实希望输出作为列表,只需将其传递给
list()
构造函数即可。你知道吗使用列表理解:
演示:
或者,您可以使用^{} ,它的工作方式与
.split()
类似,但它将拆分任何换行符组合上的数据,即\r
、\n
或\r\n
。它处理最后一行也有点聪明。你知道吗如果此数据来自文件,请考虑使用正确的工具;^{} module 可以更好地处理逗号分隔数据上引用的复杂情况:
数据不必来自文件,
csv
可以处理任何iterable,包括.splitlines()
的结果:相关问题 更多 >
编程相关推荐