python如何拆分列表中的文本

时间:2017-05-20 12:01:32

标签: python string list python-3.x split

因此stdin将文本的一行引回到列表中,并且多行文本都是列表元素。 你怎么把它们分成单个单词?

mylist = ['this is a string of text \n', 'this is a different string of text \n', 'and for good measure here is another one \n']

想要输出:

newlist = ['this', 'is', 'a', 'string', 'of', 'text', 'this', 'is', 'a', 'different', 'string', 'of', 'text', 'and', 'for', 'good', 'measure', 'here', 'is', 'another', 'one']

4 个答案:

答案 0 :(得分:5)

您可以使用简单列表理解,例如:

newlist = [word for line in mylist for word in line.split()]

这会产生:

>>> [word for line in mylist for word in line.split()]
['this', 'is', 'a', 'string', 'of', 'text', 'this', 'is', 'a', 'different', 'string', 'of', 'text', 'and', 'for', 'good', 'measure', 'here', 'is', 'another', 'one']

答案 1 :(得分:1)

或者,您可以map str.split方法访问列表中的每个字符串,然后通过itertools.chain.from_iterable将结果列表中的元素链接在一起:

from itertools import chain

mylist = ['this is a string of text \n', 'this is a different string of text \n', 'and for good measure here is another one \n']
result = list(chain.from_iterable(map(str.split, mylist)))
print(result)
# ['this', 'is', 'a', 'string', 'of', 'text', 'this', 'is', 'a', 'different', 'string', 'of', 'text', 'and', 'for', 'good', 'measure', 'here', 'is', 'another', 'one']

答案 2 :(得分:0)

你可以这样做:

class Main(QtWidgets.QWidget):
    def __init__(self):
        super(Main, self).__init__()
        self.ui = Ui_Form()
        self.ui.setupUi(self)
        self.show()
        self.ui.exit.clicked.connect(self.handle)

    def handle(self):
        self.print("hello")

if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    w = Main()
    w.show()
    sys.exit(app.exec_())

因此,您将列表转换为字符串,然后用空格键将其拆分。 然后你可以通过执行以下操作删除/ n:

words = str(list).split()

或者如果你想在一行中完成:

words.replace("/n", "")

说这可能不适用于python 2

答案 3 :(得分:0)

除了上面提到的列表理解答案,你也可以在for循环中进行:

#Define the newlist as an empty list
newlist = list()
#Iterate over mylist items
for item in mylist:
 #split the element string into a list of words
 itemWords = item.split()
 #extend newlist to include all itemWords
 newlist.extend(itemWords)
print(newlist)

最终,您的newlist将包含mylist

中所有元素中的所有拆分字词

但是python列表理解看起来更好,你可以用它做很棒的事情。点击此处查看更多信息:

https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions