1. Python自带的split函数只能指定一个分割符,需要使用多个分割符时,可以使用re.split()。
str.split(separator, maxsplit)
注意这里的第二个参数, 当设置了maxsplit=2时,最多只会分隔两次,也就是生成3个组。
import re text = '你好!吃早饭了吗?再见。' print(text.split('!')) # ['你好', '吃早饭了吗?再见。'] print(text.split('。|!|?')) # ['你好!吃早饭了吗?再见。'] print(re.split('。|!|?', text)) # ['你好', '吃早饭了吗', '再见', '']
2.其他操作
(1)index() 在str中返回第一个匹配的到的位置,如果匹配不到返回ValueError
(2)find() 在str中返回第一个匹配的到的位置,匹配不到返回-1。
(3)rfind() 与find类似,不过是从右侧开始匹配。
print('a,b,c,d,e'.split(',')) # ['a', 'b', 'c', 'd', 'e'] print('a,b,c,d,e'.split(',', maxsplit=2)) # ['a', 'b', 'c,d,e'] string = 'abcab' print(string.find('ab')) # 0 print(string.rfind('ab')) # 3 print(string.index('ab')) # 0 print(string.find('ac')) # -1 print(string.rfind('ac')) # -1 print(string.index('ac')) # ValueError: substring not found
3.filter 过滤出不是过滤掉
filter只保留为True的,过滤为False的
a = filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5]) # [2, 4] for i in a: print(i)
运行结果:
2
4
4.python列表步进
print([1, 2, 3, 4, 5, 6, 7][1:5:2]) # [2, 4] 1<= <5 左闭右开