我有一个变量string
,字符串类型如下:
string = """First
Second
Third
..."""
我想将每一行添加到列表的单独单元格中,因为此变量大小的变化我不能使用这样的内容:
temp=[]
temp.append(s[0: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', '']