1)集合类型
- 集合:无序 用大括号{}表示,可包含0个或多个数据项
定义空集合必须用set()函数
注意:s={}
这是字典类型dict
集合中元素不可重复,元素类型只能是固定类型——数字
它没有索引和位置的概念,集合中元素可以动态增加或删除
集合类型有4个操作符,交集&、并集|、差集-、补集^
【差集s1-s2,s1有s2没有的】
操作逻辑与数学定义相同 - 操作函数或方法:
s.add(x) 如果x不在集合中,增加x到s
s.remove(x) 如果x在集合中【不再产生KeyError异常】移除该元素
s.clear(x) 移除s中所有数据项s.clear()
显示set()
len(s) 返回s元素个数
x in s 如果x是s的元素返回true,否则返回false
x not in s 如果x不是s的元素返回true,否则返回false
2)列表类型
- 所有元素放在中括号[]内
列表属于序列类型「有顺序」**,元素类型可以不同
可以使用list()或[]创建空列表
支持双向索引
列表是可变的
s = [2,"python",[2,4,6],"hello"]
m = "python"
lt = list(m)
print(lt)
#注意切片切出来的一个元素也还是列表类型
print(s[1:2])
#但单独的某一位置元素是字符串没有错
print(s[1])
- 列表的切片
<列表或列表变量>[N::K]K可省略 起始位置:终止位置(不包含):步长(1)
正向和反向切片均可 - 列表支持的操作符
[1,3,5,7] + [2,4] [1,3,5,7,2,4] [1,3,5] * 3 [1,3,5,1,3,5,1,3,5]
3)元组类型
- 元组
所有元素放到**圆括号()**内
如果元组中只有一个元素,必须在最后增加一个逗号
t = (1)
#type = int
t = (1,)
#type = tuple
可以使用tuple()或()创建空元组
支持双向索引
***元组是不可变的***
- 元组的索引
索引是列表的基本操作,用于获得列表的一个元素,使用中括号为索引操作符 - 元组的切片
元组的切片用于获取元组的一个片段(一个或多个元素)——切片的结果也是元组类型
<元组或元组变量>{N:M:K]K可省略 不包含M - 元组支持的操作符
(1,3,5) + (2,4,6)
(1,3,5,2,4,6)
(1,3,5) * 3
(1,3,5,1,3,5,1,3,5)
4)字典类型
- 字典
元素放在花括号{}内
每个元素是一个键值对,元素之间用逗号隔开
使用方式{key1:value1,key2:value2}
可以用dict()或{}创建空字典
键值对之间没有顺序且不能重复
d = {"小红":18,"小黑",27}
print(d)
- 查找字典中元素
<值> = <字典变量>[<键>]
利用索引和赋值可以对字典中的元素进行修改
利用索引和赋值可以在字典中增加新的元素
使用del关键字可以删除字典的对应元素或字典本身
d = {"201801":"小明","201802":"小红"}
print(d)
d["201802"] = "新小红"
print(d)
d["201803"] = "小白"
print(d)
del d["201801"]
print(d)
d.clear()
print(d)
操作函数或方法:
s.add(x) 如果x不在集合中,增加x到s
s.remove(x) 如果x在集合中【不再产生KeyError异常】移除该元素
s.clear(x) 移除s中所有数据项
len(s) 返回s元素个数
x in s 如果x是s的元素返回true,否则返回false
x not in s 如果x不是s的元素返回true,否则返回false
5)组合数据类型
6)列表的操作方法
- 操作函数:
len(ls) 列表ls的元素个数
min(ls) 列表ls中的最小元素(使用条件:内部数据可比较)
max(ls) 列表ls中的最大元素(使用条件:内部数据可比较)
list(x) 将x转换成列表类型
操作方法:
<列表变量>.<方法名称>(<方法参数>)
ls.append(x) 在列表ls最后增加一个元素
ls.insert(index,x) 在列表ls第index位置增加一个元素
ls.clear() 删除ls中所有元素
ls.pop(index) 将列表ls中第index项元素取出并删除该元素
ls.remove(x) 将列表中出现的第一个元素x删除
ls.reverse() 列表ls中元素反转
ls.copy() 生成一个新列表,复制ls中所有元素
ls = list("python")
ls = ["小蓝","小绿","小白"]
x = ls.pop(1)
ls.remove("小白")
lt = ls.copy()
print(lt)
7)列表的引用
ls = [“1010”,“10.10”,“python”]
lt = ls
ls.clear()
print(lt)
输出[]
原因:产生了ls、lt关联引用,修改时ls、lt同步改变
解决方法
ls.copy() 生成一个新列表,将ls元素清空不影响新生成的变量lt
8)字典的操作方法
- 操作函数:
len(d) 字典d的元素个数
min(d) 字典d中的最小元素
max(d) 字典d中的最大元素
dict() 生成一个空字典
操作方法:
<字典变量>.<方法名称>(<方法参数>)
d.keys(x) 返回所有的键信息
d.valuest() 返回所有的值信息
d.items() 返回所有的键值对
d.get(key,default) 键存在则返回相应值,否则返回默认值
d.pop(key,default) 键存在则返回相应值,同时删除键值
d.popitem() 随即从字典中取出一个键值对,以元组
d.clear() 删除所有的键值对
d = {"name":"zhangsan","age":18}
print(d.keys())
print(d.values())
print(d.items())
print(d.get("sex","male"))
print(d.pop("name"))
print(d.pop("sex","male"))
print(d.popitem())