python--str.split()函数分割

split的英文是分裂的意思
在python中表示根据某个字符,对字符串进行分割,然后以列表形式进行输出。
注意点:
1、split()默认分割
里面如果什么都不输入默认是空格
2、split(’\n’)单分割
里面如果写什么就是以什么进行分割
例如:(’\n’ , !@ # ¥ % ……&*()vb se)都可以
3、split(’ |!|?|.’, a)多分割
需要用到re模块,例如:

import re
prizes = '''
1 鹊桥相会,聊天动效  # 35%
'''
prize_list = re.split(r'[,#\n]',prizes)
print(prize_list)

输出结果:['', '1 鹊桥相会', '聊天动效  ', ' 35%', '']

4、split(’ ', 2)
如果字符串内有3个空格。只分割前面2个空格。且生成1个列表,后面如果还存在空格,不会进行分割,只会放在一个字符串里面。

a = "E 239113 hello world"
c = a.split(" ", 2)
print(c)

输出结果:['E', '239113', 'hello world']

我们如下列实战进行解析:

def prize():
    prizes = '''
1 鹊桥相会聊天动效 35%
2 燦若繁星封面特效 25%
'''
    prize_list = prizes.split('\n')#重点看这里
    for jp in prize_list:
        if jp == '' or jp =='    ' or jp == '\t':
            continue
        jp_list= jp.split()#重点看这里
        print(jp_list)
print(prize())

1、我们定义一个方法名为抽奖(prize),字符串命名为prizes。并且字符串里面包含空格,以及换行等等,我们需要对他们进行处理,才能转换为我们想要的列表格式。

def prize():
    prizes = '''
1 鹊桥相会聊天动效 35%
2 燦若繁星封面特效 25%
'''
	prize_list = prizes.split('\n')

2、根据上述,我们可以观察到,奖池是字符串形式,因此我们要进行分割。
通过代码我们得知分割的点是换行(\n)。那么我们就是,用换行来进行一个节点的分割。

print(prize_list)

3、此时我们会输出一个prize_list查看返回的结果。
下面我们输出了一个结果,那就是每个换行会出现一个逗号,并且以列表形式进行输出。

['', '1 鹊桥相会聊天动效永久卡 35%', '2 燦若繁星封面特效x7天 25%', '']

4、因为输出的格式存在空格字符串,我们在对空格字符串进行下列处理

    for jp in prize_list:
        if jp == '' or jp =='    ' or jp == '\t':
            continue

5、用自定义的jp循环我们的prize_list,并且判断,如果有空格、四个空格,或者tab键进行跳过本次循环。

知识补习
continue语句的作用是跳过本次循环体中余下尚未执行的语句,立即进行下一次的循环条件判定,可以理解为仅结束本次循环。
注意:continue语句并没有使整个循环终止。

我们得出的jp结果如下:

1 鹊桥相会聊天动效 35%
2 燦若繁星封面特效 25%

6、上面目前有两个奖品,但是这还不是我们想要的结果。我们在此对jp进行分割,我们分割的目的是需要让他们独立为两个列表,如下:
split()里面如果什么都不输入默认是空格

        jp_list = jp.split()
        print(jp_list)

分割完成,最终的结果如下:

['1', '鹊桥相会聊天动效', '35%']
['2', '燦若繁星封面特效', '25%']

猜你喜欢

转载自blog.csdn.net/zhouzongxin94/article/details/108094311