如何在列表中添加新行作为单独的元素?

时间:2014-04-15 18:06:50

标签: python

我正在打印我的应用正在接收的变量,我得到的结果如下:

dog
cat
monkey
cow

我想将它添加到[dog,cat,monkey,cow]列表中,但是我不确定如何将它作为一个列表,因为它只是一个字符串变量(所以当我做一个字符串中的项目:...我只是得到每个字母而不是单词)。有没有办法根据每个项目是新行的事实将每个项目添加到列表中?

由于

2 个答案:

答案 0 :(得分:2)

为此目的提供了一种内置的字符串方法,称为splitlines

>>> tst = """dog
cat
monkey
cow"""
>>> tst
'dog\ncat\nmonkey\ncow'   # for loop gives you each letter because it's 1 string
>>> tst.splitlines()
['dog', 'cat', 'monkey', 'cow']

当然,你可以追加它:

>>> lst = tst.splitlines()
>>> lst.append("lemur")
>>> lst
['dog', 'cat', 'monkey', 'cow', 'lemur']

想要它作为多行字符串吗?使用join

>>> '\n'.join(lst)
'dog\ncat\nmonkey\ncow\nlemur'
>>> print '\n'.join(lst)
dog
cat
monkey
cow
lemur

答案 1 :(得分:2)

我相信您正在寻找str.splitlines

>>> mystr = "dog\ncat\nmonkey\ncow"
>>> print(mystr)
dog
cat
monkey
cow
>>> mystr.splitlines()
['dog', 'cat', 'monkey', 'cow']
>>>

来自docs

  

str.splitlines([keepends])

     

返回字符串中的行列表,在行边界处断开。此方法使用universal newlines方法   分裂线。换行符不包含在结果列表中   除非给出keepends并且为真。