赞
踩
最近在学python,发现有一个split()分割的小问题,因而记录一下。
①一般来说,spilt()和split(' ')都是按照字符间的空格进行分割。其中split()会把多个空格当成一个空格进行分割,split(' ')会把字符中间的多个空格当成多个空格分割。
示例如下:
- article = 'This is a photograph'
- print(article.split())
- # ['This', 'is', 'a', 'photograph']
- article = 'This is a photograph'
- # This和is之间空了两个空格
- print(article.split())
- # ['This', 'is', 'a', 'photograph']
- print(article.split(' ')) #用一个空格进行分割
- # ['This', '', '', 'is', 'a', 'photograph']
- print(article.split(' '))#用两个空格进行分割
- # ['This', ' is a photograph']
②但是当字符出现换行情况时,两种分割方法出现了些许变化。
- article = '''This is a photograph
- There is a boy '''
- print(article.split())
- # ['This', 'is', 'a', 'photograph', 'There', 'is', 'a', 'boy']
- print(article.split(' '))
- # ['This', 'is', 'a', 'photograph\nThere', 'is', 'a', 'boy', '']
我们会发现用spilt(' ')分割时遇到换行的情况,不会把换行符\n给分割掉。这是因为split()其实是按空白符分割,空格、换行符\n、制表符\t等都属于空白符。而split(' ')才是按空白格分割,而且根据括号里空白格的数量不同,分割情况也不同。
- article = '''This is a ph\toto\ngraph
- There is a boy '''
- # photograph中插入了'制表符\t'和'换行符\n'
- print(article.split())
- # ['This', 'is', 'a', 'ph', 'oto', 'graph', 'There', 'is', 'a', 'boy']
- # 可以看到\t、\n都被移除了
- print(article.split(' '))
- # ['This', 'is', 'a', 'ph\toto\ngraph\nThere', 'is', 'a', 'boy', '']
总结:str.split()分割是按照空白符来分割,空白符包括:空格、换行符\n、制表符\t等
str.split(' ')是按照空白格来分割,根据括号内空白格数量的不同,分割情况也不同
(如有错漏之处,还望小伙伴们加以指正!)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。