简介
本篇博客记录python基本语法,用于速查
列表与元组
- 切片操作
sname[start:end:step] #sname: 序列的名称
- 序列相加
a = 'Hello' b = ' python' a + b # 'Hello python'
- 乘法(相当于R里的rep)
a = 'good' b = a*5 # b = ['good','good','good','good','good',]
- 检查某个元素是否是序列的成员
value in sequence
- 常用内置函数
函数 说明 list() 将序列转换为列表 str() 将序列转换为字符串 sum() 求和 sorted() 排序 reversed() 反向序列 enumerate() 将序列组合为一个索引序列,多用在for循环中 len() 长度 max() 最大 min() 最小 - 循环列表
for index, item in enumerate(listname): print index + 1 print item
- 添加元素(两种方式都会覆盖原列表)
listname和obj为两个列表 #append()方法用于在列表的末尾追加 listname.append(obj) #entend()方法延伸 listname.entend(obj)
- 对列表统计运算
listname.count(obj) #统计listname中obj出现数目 listname.index(obj) #找索引 listname.sort() sorted(listname) #排序
- 元组的创建
tuplename = (elment 1, element 2, ..., element n) tuple(data)
- 索引
listname[2] #第三个元素 listname[-1] #最后一个元素 listname[0:5:2] #1,3,5
字符串
- 字符串分割
str.split(sep, maxsplit) # str: 要分隔的字符串 # sep: 分隔符 # maxsplit: 默认没有限制
- 字符串检索
str.count() str.find() str.index() str.startswith() str.endswith()
- 大小写转换
str.lower() str.upper()
- 去除空格和特殊字符
str.strip([chars]) #去除左右侧 str.lstrip([chars]) #去除左侧 str.rstrip([chars]) #去除右侧
正则表达式
-
行定位符
^tm : 匹配以tm开始的行 $tm : 匹配以tm结尾的行
-
元字符
. : 除换行符以外任意字符 \w : 匹配数字、字母、下划线或汉字 \W : 匹配除数字、字母、下划线或汉字以外的字母 \s : 匹配 \S : 除单个空白字符(包括Tab和换行)以外的所有字符 \d : 匹配数字 \b : 匹配单词的开始或结束,单词的分界符通常是空格、标点符号或者换行 $ : 匹配字符串的结束 ^ : 匹配字符串的开始
-
限定符
- 如果想匹配特定数量的数字,该如何表示呢?
^\d{8}$ #匹配数字8次
- 常用限定符
? 匹配前面的字符零次或一次 例如:colou?r, 可匹配colour和color + 匹配前面的字符一次或多次 例如:go+gle, 可匹配google和goooo...gle * 匹配前面的字符零次或多次 例如:go*gle, 可匹配ggle和gooooo..gle {n} 匹配前面的字符n次 例如go{2}gle, 可匹配google {n,} 匹配前面的字符至少n次 例如go{2,}gle, 可匹配google和goo....gle {n,m} 匹配前面的字符最少n次,最多m次 例如employe{0,2}, 可匹配employ, employe和employee三种情况
- 如果想匹配特定数量的数字,该如何表示呢?
-
字符类
[0-9] #与\d一致 [abcde] #匹配abcde
-
排除字符
#正则表达式中提供了^用于排除字符,^放到方括号中表示不匹配 [^a-zA-Z] # 匹配一个不是字母的字符
-
选择字符
例如:匹配身份证号,如果是15位全是数字;如果18位,前17是数字最后一位是数字或X(^\d{15}$)|(^\d{18}$)|(^\d{17})(\d|X|x)$
-
转义字符
[1-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} # 在使用 . 时,需要用 \ 来转义
-
分组
- 小括号第一个作用是改变限定符的作用范围;
- 第二个是分组
(\.[1-9]{1,3}){3} # 对(\.[1-9]{1,3})操作三次