说明:文中出现代码均为伪代码
1. 字符串相关:
str.replace(o_str, n_str) # 返回替换后的新字符串
str3 = str1 + str2 # str1 == 'a' and str2 == 'bc' ==> str3 = 'abc'
str.upper() # 返回全大写字符串
str.lower() # 返回全小写字符串
str.title() # 返回每个单词首字母大写字符串
str.rstrip() # 返回删除 str 末尾空格的字符串
str.lstrip() # 剔除开头空格
str.strip() # 剔除两端空格
2. 列表相关
# 创建列表
empty = list() # 空列表
roles = ['audit', 'comm_user', 'admin']
copy_role = list_roles[:] # 复制 roles 列表到 copy_role 列表
# 列表 <--> 字符串:
"".join(list)
split_list = str.split() # 默认以空格分隔,可指定特定分割符
e.g:li = ['a', 'b', 'c']
string = " ".join(li) # string == 'a b c'
string1 = ";".join(li) # string == 'a,b,c'
split_list = string.split() # li[i] == split_list[i]
# 增加元素
list[-1] # 返回list最后一个元素
list.append(str) # 将 str 添加到 list 末尾
list.insert(0, str) # 将 str 插入到 list[0]
del list[0] # 删除 list[0]
li = list.pop() # 弹出 list 末尾元素
li = list.pop() # 弹出 list[0]
list.remove('value') # 从列表中删除第一个值为 value 的项
# 排序
list.sort() # 顺序排,改变 list
list.sort(reverse=True) # 逆序排序(按字母顺序、数字大小等)
list.reverse() # 反转顺序(按照索引)
sorted(list) # 返回排序后 list, 不改变 list
sorted(list, reverse=True)# 返回逆序排列后的 list,不改变 list
sorted(list, key=lambda x:len(x)) # 返回按 list 元素长度排序的列表,不改变 list
# 数字列表
min(list)
max(list)
sum(list)
num = list(range(1,9,2)) # num == [1, 3, 5, 7]
# 列表操作
for i in num: # 遍历
print(i)
if 2 in num: # 判断指定元素在列表中的存在性
print('2 is a prat of the num_list')
for i in range(1, 5): # 结果应为 1,2,3,4
print(i)
3. 字典
# 删除键值对
del dict['key']
# 遍历
for k, v in dict: # 为提高可读性,k、v可使用响应字段明
pass
for k in dict.keys(): # 也可直接遍历 key
pass
for v in dict.values(): # 遍历values
pass
4. 元组、set
set(list) # 去重
name_tuple = ('hank', 'bob')
name_tuple[0] = 'alice' #错误, 不能单独改变 tuple 的一个元素值
name_tuple = ('alice', 'bob') # 正确,tuple变量可以重新复制
5. 类
类变量可以直接通过 类名.类变量 访问,
可以在程序中永久性改变类变量的值,这种改变会引起该类所有实例访问到的该类变量值改变,需要谨慎使用。
class User:
age = 18
def __init__(self, name):
self.name = name
user1 = User('alice') # user1.age == 18
user2 = User('bob') # user2.age == 18
User.age = 10 # user1.age == 10, user2.age == 10
内置类属性:
__dict__: 类的属性(包含一个字典,由类的数据属性组成)
__doc__: 类的文档字符串
__name__: 类名
__module__: 类定义所在的模块
__base__: 类的所有父类构成元素(包含一个由父类组成的元组)
基础重载方法:
__init__(self,[,args...]): 构造函数, obj = ClassName(args)
__del__(self): 析构一个对象,del obj
__str__(self): 将值转化为适于人阅读的形式, str(obj)
__repr__(self): 转换为供解释器读取的形式
__cmp__(self, x): 对象比较,cmp(obj, x)
实例方法的第一个参数一般为self,self表示实例本身,但不是类,self.__class__指向类
类方法(@classmethod装饰的方法)第一个参数一般为cls,表示类本身
受保护的实例属性使用单下划线开头,如:_protect_value
私有实例属性使用双下划线开头,如:__private_attrs
私有方法使用双下划线开头,如:__private_method
6. 脚本
# 遍历文件夹
import os
file_dir = '...'
for root, dirs, files in os.walk(file_dir):
... # root:文件路径
# dirs:目录名
# files:文件名
7. 正则
import re
string = ‘hello world'
regx = r'h\S*'
m = re.match(regx, string) # regx:正则表达式; string:待匹配字符串
s = re.search(regx, string) # match 从头开始匹配, search 在整个字符串中匹配子串
find_list = re.findall(regx, string) # 以列表形式返回所有匹配项