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%']