基本结构
字符串 整数 布尔 浮点
列表(List)
列表中正序排列的索引从0开始, 倒序从-1开始
列表的取值
- 列表变量[索引值]
- 范围取值 列表变量[起始索引:结束索引]。左闭右开
index
查找列表的某个元素位置 List.index(查找的内容)
len
获取长度 len(list)
reverse
列表反转 list.reverse()
sort
列表排序 list.sort(recerse) //参数为Ture代表降序排序
append
列表新增 list.append(新元素) //列表末端插入新元素
insert
列表指定位置插入 list.insert(索引, 新元素)
列表赋值
列表指定赋值 list[索引] = 新值
列表范围赋值 list[起始索引:结束索引] = 新列表
remove
列表删除指定元素 list.remove(元素) //删除指定元素
pop
列表删除指定索引list.pop(索引) //按索引删除
count
列表查询元素出现的次数 list.count(元素) //返回元素出现的次数
extend
列表添加元素是数组是 展开添加 list.extend(要添加的列表)
查询列表中是否存在
查询某一项是否在列表中 元素 in list //返回布尔值
判断两个列表是否属于🙆♂️内存 list is list
clear
列表的清空 list.clear()
copy
列表复制 list.copy()
列表的遍历
for item in list:
print(item)
字典(dict)
创建字典两种方法
1.声明式 {}
2. dict函数
字典方法
formkeys
dict.formkeys(key列表, 默认值) //创建这些key 值为None
字典取值
字典取值 dict[key] 或者 dict.get(key, 默认值) 没油找到默认值
in
判断某一个值是否存在与字典中 key in dict
遍历dict
遍历dict: for key in dict:
便利 dict: for key, value in dict.items()
字典更新
//字典更新操作 有则该 无则加
字典更新 dict[key] = value
字典更新 dict.update = (key = value, key = value)//多个赋值
字典更新
字典删除 dict.pop(key)
字典删除最后一个 dict.popitem() //返回的是删除的
clear
清空字典 dict.clear()
字典设置默认值
字典设置默认值,如果存在key忽略,不存在设置 dict.setdefault(key, value)
获取字典的试图
1.keys获取所有key
2.values 获取所有的value
3.items获取所有健值对
利用字典格式化字符串
emp = {name: '123', grade: 'c', hiredate: '2013-09-08'}
//老版
emp_str = "姓名:%(name)s,评级:%(grade)s,入职时间,%(hiredate)s" %emp
新版
emp_str1 = "姓名:{name},评级:{grade},入职时间:{hiredate}".format_map(emp)
元组(tuple)
元组是不可变的列表
元组用的是小括号,列表使用的是方括号
列子
(5,6,7) + (8,9,10)
输出 (5,6,7,8,9,10)
(1, 2) * 2
输出(1,2,1,2)
元组的创建
a = (1, 2, 3)
a1 = 1, 2, 3, 4
a2 = (1 ,) //当只有一个值的时候 如果没有逗号表示不是元组
元组的方法
tuple[索引]
tuple[起始索引, 结束索引] //范围取值
如果元组中有列表或者字典是可修改里面的值
列表与元组的区别
数字序列range
range(起始,结束, 步长)
序类型转换
l1 = ['a', 'b', 'c']
t1 = ('a', 'b', 'c')
s1 = 'abc123'
s2 = 'abc, 123'
r1 = range(1, 4)
//list转换
l2 = list(t1)
//str函数转为字符串
str(l1)
集合
可以看作为没有value的字典
集合的特点:1集元素是无序的 2集合元素不能重复 3集合是可变的 4集合允许数字运算 5集合是分散存储的
集合的创建
l1 = {1, 2, 3}
l2 = set()
方法
set()内置函数从其他数据结构转换
l2 = set([1, 2, 3]) //将数组转为集合{1, 2, 3}
l3 = set('str1') //{s, t, r}
集合关系与数字运算(交集 并集 差集)
l1 = {1, 2, 3}
l2 = {1, 2, 3, 4}
//交集
l0 = l1.intersection(l2) //{1, 2, 3}. 获取两个集合重复的部分 新建一个集合
l1.intersection_update(l2) //更新原始集合 l1没有的
print(l1) //{1, 2, 3, 4}
//并集
l1.union(l2) // {. 1, 2, 3, 4 }
//差集
l1.difference(l2) //{4}得到l1在l2中不存在的部分
l1.symmetric_difference(l2) //双方互相的差集
集合间的关系操作
# ==判断两个集合是否完全相同
# l1.issubset(s4) //判断l1是否为l2子集
# l4.issiperset(s3) //s3是否是s4的父级
#l1.isdisjoint(l2) //判断两个集合是否存在重复元素 返回ture不存在 false存在有
集合的遍历
for c in l1:
print(c)
# 集合不支持按索引查找
集合添加元素
add
l1.add(元素)
update方法 添加多个元素
l1.update([7, 8])
删除元素
discard
remove
//更新先删除在添加
//如果删除不存在的元素会报错
#discard(元素)如果遇到不存在的元素 会被忽略
l1.discard(元素)
l1.remove(元素)
内置生成式
列表生成式
lst = []
for i in range(20, 30):
lst.addend(i)
lst = [i for i in range(10, 20)] //[20, 21, 22, 23, 24, 25, 26, 27, 28, 29]
字典生成式
# 字典生成式
lst5 = ['张三', '里斯', '王武']
dict1 = {i+1: lst5[i] for i in range(0, len(lst5))} //{1: '张三', 2: '里斯', 3: '王武'}
集合生成式
set1 = {i * j for i in range(1, 4) for j in range(1, 4) if i == j} //{1, 4, 9}