我有一个像这样的字符串类型的变量string

string = """First
Second
Third
..."""


我想将每一行添加到列表的单独的单元格中,因为这种可变大小的更改我不能使用如下所示:

temp=[]
temp.append(s[0:5])
....


而且我没有找到任何有用的功能来分隔行。

最佳答案

已有内置函数:str.split。它返回一个包含整个传递字符串的字符串列表,该字符串将根据给定字符进行相应的剪切。例如:

>>> "foo bar foobar".split(' ')
['foo', 'bar', 'foobar']


在这里,我想使用空格作为分隔符。对于您的情况,您希望每个字符串都包含在一个字符串中。因此,分隔符是换行符,在python中由\n字符表示。因此,您要做的就是:

lines_list = s.split('\n')


但是,这取决于您所使用的程序的操作系统:在基于Unix的系统上,通常都可以正常工作。但是,Windows选择使用回车符(Python中的\r)和换行符(n)作为行分隔符。因此,如果您在Windows系统上应用先前的代码,将有一个类似于['foo\r', 'bar\r', 'foobar\r']的列表。问题在于回车符的存在可能会导致某些问题,您必须删除它们,例如执行以下操作:

lines_list = [line.replace('\r', '') for line in lines_list]


基本上,这行代码创建了一个新列表(使用理解列表),该列表包含lines_list的所有元素,但是\r被替换为...,什么都没有,因此已被删除。

关于python - 如何在Python中将包含某些行的字符串转换为每个单元格包含一行的列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30830191/

10-12 22:12
查看更多