如何将带有某些行的字符串转换为每个单元格在Python中包含一行的列表?

时间:2015-06-14 13:53:48

标签: python python-2.7

我有一个变量string,字符串类型如下:

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

我想将每一行添加到列表的单独单元格中,因为此变量大小的变化我不能使用这样的内容:

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

我没有找到任何有用的功能,为我分隔线。

5 个答案:

答案 0 :(得分:2)

根据换行符charcater进行拆分。

string.split("\n")

示例:

>>> s="""temp
bar
foo"""
>>> s.split("\n")
['temp', 'bar', 'foo']

答案 1 :(得分:2)

你可以尝试

s.split('\n')

如果\n由于某些原因无效,您也可以尝试\r\n。这取决于您使用的系统。

你可能得到这样的结果:

['First', 'Second', 'Third', '']

如果您找到这样的空字符串并想要忽略它们,请尝试:

[x for x in s.split('\n') if x]

您的结果将更改为:

['First', 'Second', 'Third']

答案 2 :(得分:1)

尝试使用像

这样的东西
temp = s.split('\n')

答案 3 :(得分:1)

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

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

在这里,我想将空格用作分隔符。在您的情况下,您希望在单个字符串中包含每个不同的行。因此,分隔符是一个新行字符,在python中由\n字符表示。所以,你所要做的就是:

lines_list = s.split('\n')

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

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

基本上,这行代码创建了一个新列表(使用理解列表),其中包含lines_list的所有元素,但\r已替换为......没有,所以已经删除。

答案 4 :(得分:0)

In [1]: import re
In [6]: a = re.compile('[\s\n\r]')

In [7]: a.split('asf sfd ww3 ')
Out[7]: ['asf', 'sfd', 'ww3', '']

In [9]: string = '''asfdasdf
   ...: ass
   ...: fdsf ssdaf
   ...: dsf s a
   ...: '''
In [10]: a.split(string)
Out[10]: ['asfdasdf', 'ass', 'fdsf', 'ssdaf', 'dsf', 's', 'a', '']