分割python多空格字符串的两种方法小结

分割python多空格字符串

这篇文章需要处理的问题就是:

一个字符串被多个不同长度的空白分割,我需要把空格去掉,留下有用的信息形成一个列表

如:"aa bbbbb ccc d" ----》['aa', 'bbbbb', 'ccc', 'd']

做法

1.str.split()

2.filter(None,str.split(" "))

直接用str.split(" ")是不行的,他只会分割一个空格,如下

def test_filter():
    str = "aa   bbbbb         ccc  d"
    str_list = str.split(" ")
    print str_list

结果:

第一种做法

实际上,split()函数默认可以按空格分割,并且把结果中的空字符串删除掉,留下有用信息

分割python多空格字符串的两种方法小结_第1张图片

def test_filter():
    str = "aa   bbbbb         ccc  d"
    str_list = str.split()
    print str_list

结果:

第二种做法

可以用filter函数对split(“ ”)进行过滤

def test_filter():
    str = "aa   bbbbb         ccc  d"
    str_list = filter(None,str.split(" "))
    print str_list

结果:

filter第一个参数是None的时候,返回第二个参数中非空的值。

分割python多空格字符串的两种方法小结_第2张图片

可能第一种做法更方便一些。

如何分割字符串

很少有示例向您展示如何在Python中将字符串拆分为列表。

1.按空格分割

默认情况下, split()将空格用作分隔符。

alphabet = "a b c d e f g"
data = alphabet.split() #split string into a list
 
for temp in data:
    print temp

输出量

a
b
c
d
e
f
g

2.分割+最大分割

仅按前2个空格分割。

alphabet = "a b c d e f g"
data = alphabet.split(" ",2) #maxsplit
 
for temp in data:
    print temp

输出量

a
b
c d e f g

3.用#分割

又一个例子。

url = "mkyong.com#100#2015-10-1"
data = url.split("#")
 
print len(data) #3
print data[0]  # mkyong.com
print data[1]  # 100
print data[2]  # 2015-10-1
 
for temp in data:
    print temp

输出量

3
mkyong.com
100
2015-10-1
mkyong.com
100
2015-10-1

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的