python常用数据操作
字符串 string
# str,可迭代,可索引
var = 'bigllxx' # 新建
var = var[4:6] + 'love lwx' # 拼接
var = list(var) # 转换为列表
var = ','.join(var) # 转换为字符串,以 , 拼接
a = var.replace('x', 'a', '2') # 从左到右替换,替换2次
a = var.split(' ') # 从左往右分割字符串,以空格分割,分割成一个列表
a = var.upper() # 全部转换为大写
a = var.lower() # 全部转换为小写
a = var.swapcase() # 全部大小写颠倒
a = var.strip('love') # 去除指定字符,形成一个列表
a = var.find('w') # 从左边查找字符串内容,找到返回索引,没找到返回-1
a = len(var) # 计算字符转长度
# 其他: \ 转义特殊字符 r 显示原始字符 ; s% d% format 字符串格式化
列表 list
常用方法
注意:insert、remove、sort,只修改列表,返回值为None,所以不要给变量
# list , 可迭代,可索引
list[0: i: -1] # 逆序读取索引元素
list.append(x) # 在列表末尾添加一个新元素
list[i] = 'x' # 替换索引元素
list.insert(i, x) # 在索引位置插入元素,原元素后移
list.remove(x) # 删除列表第一个匹配到x的元素
list.pop(i) # 按索引删除列表元素,并返回删除的元素
list.extend(new_list) # 合并列表,list在前
list2.count(x) # 统计元素出现的次数
list.reverse() # 反转列表元素
list.sort() # 升序排序 list.sort(reverse=True) 降序
列表推导式
list = [i+1 for i in range(5) if i > 2] # 列表推导式 前者为执行语句,后者为循环/逻辑语句
# 等同于
list = []
for i in range(5):
if i > 2:
list.append(i+1)
嵌套循环
list = [i*j for i in range(1,4) for j in range(1,4)]
# 等同于
list = []
for i in range(1, 4):
for j in range(1, 4):
list.append(i * j)
元组 tuple
元组具有不可变特性,但嵌套在内部的列表可变(变量指针/内存地址)
tuple = 1,2,3,1,2 # 定义一个元组,也可tuple=(1,2,3)
tuble.count(x) # 读取元组中x的个数
tuble.index(x) # 读取x的索引
集合 set
- 集合是由不重复元素组成的不重复的集
- 基本用法:成员检测、消除重复元素
- {}或者set()函数创建集合,{}不能创建空集合
set_a = {1, 2, 3} # 定义一个集合 也可set_a = set()
set_b = {3, 4, 5}
set_a.union(set_b) # 读取set_a与set_b的并集
set_a.intersection(set_b) # 读取set_a与set_b的并集
set_a.difference(set_b) # 读取set_a与set_b的差集
set_a.add(1, 2, 3) # 添加元素
字典 dict
以关键字为索引,关键字是不可变的字符串或者数字,也可以是元组(只包含某一种数据类型的)
dict_a = {'a'=1, 'b'=2} # 定义字典 也可 dict_a = dict(a=1, b=2)
dict_a.keys() # 获取字典中的所有key
dict_a.values() # 获取字典中的所有value
dict_a.pop(x) # 根据key删除键值对,并返回value
dict_a.popitem() # 随机删除一个键值对并返回
dict_a.clear() # 清空字典中所有的 key-value 对
dict_a.get() # 根据 key 来获取 value
dict_a.update() # 使用一个字典所包含的 key-value 对来更新己有的字典
dict_a.items() # 获取字典中的所有 key-value 对
json、yml
json在python中就是一串字符串 str类型,可以通过json.loads()方法转成字典,进行键值对操作
json.dumps() # 将python数据类型转为json对象(字符串)
json.loads() # 将json对象转为python数据类型(dict)
# loads() 传的是字符串,而load()传的是文件对象
# 使用load()时需要先读取文件在使用,而loads()则不用,例
with open(xxx) as f:
json.dump(f)
json.load(f)
& 用来建立锚点(defaults),<< 表示合并到当前数据,* 用来引用锚点。
将yaml与json格式的相互转换
import yaml, json
with open('./file.yaml') as r_yaml:
r_dict = yaml.load(r_yaml) # 将yaml文件转为dict
r_json = json.dumps(r_dict) # 将dict转为json
r_dict = json.loads(r_json) # 将json转为dict
r_yaml = yaml.dump(r_dict) # 将dict转为yaml