【1.变量与集合】

变量:用来记录状态的变化。

基本类型:字符串、数字、列表、元组、字典。

分类可变不可变

如此可见:字符串类型就是不可变的(赋予新值时,地址变了)

由此可见:列表是可变的(更改值,地址不变)

同样,数字、元组为不可变类型,字典为可变类型。


访问顺序:

直接访问(变量名):数字

顺序访问(索引值):字符串、列表、元组

映射(键-值对):字典


 还可分为:

容器类型(可存放多个值):列表、元组、字典

原子类型(只能存放一个值):数字、字符串


 集合:

定义方法:大括号,元素之间逗号间隔:

set()

无序;

由不同的元素组成;

集合中元素必须是不可变类型;

 

 简单操作:

s.pop():随机删除

s.remove():删除集合中不存在的元素会报错

s.discard():删除集合中不存在的元素不会报错

 

集合关系运算:交集、并集、差集等

1 python_1 = ['chen','sun','li','liu']
2 linux_1 = ['liu','sun','cris']
3 p_s = set(python_1) #转集合,依次遍历列表,将不相同的元素存放在集合中,顺序已改变
4 l_s = set(linux_1)
5 print(p_s&l_s)      #求交集
6 print(p_s.intersection(l_s)) #求交集
7 
8 >>{'liu', 'sun'}
9 >>{'liu', 'sun'}
1 print(p_s.union(l_s))  #求并集
2 print(p_s|l_s)         #求并集
3 
4 >>{'cris', 'sun', 'li', 'liu', 'chen'}
5 >>{'cris', 'sun', 'li', 'liu', 'chen'}
1 print(p_s-l_s)   #求差集
print(p_s.difference(l_s))
2 >>{'chen', 'li'}
1 #交叉补集(并-交)
2 print(p_s.symmetric_difference(l_s))
3 print(p_s^l_s)
4 >>>{'cris', 'chen', 'li'}
5 >>>{'cris', 'chen', 'li'}
1 s1 = {2,3,4}
2 s2 = {'s',9,0}
3 print(s1.isdisjoint(s2)) #两个集合交集为空返回True
4 >>>True
1 s1 = {1,2,3,4}
2 s2 = {1,2}
3 print(s2.issubset(s1))  #s2是s1的子集返回True
4 print(s1.issuperset(s2))#s1是s2的父集返回True
5 >>>True
6 >>>True
1 python_1 = ['chen','sun','li','liu']
2 linux_1 = ['liu','sun','cris']
3 p_s = set(python_1)
4 l_s = set(linux_1)
5 p_s.difference_update(l_s)   #p_s=p_s-l_s
6 print(p_s)
7 >>>{'li', 'chen'}
1 s1 = {2,3,4}
2 s2 = {5,6,2}
3 s1.update(s2) #更新多个值
4 #s1.add(5)    #更新一个值
5 #s1.union(s2) #不更新
6 s1
7 >>>{2, 3, 4, 5, 6}

可以看出:集合为可变类型。

1 s = frozenset('hello')   #不可变集合
2 s.add(1)
3 >>>AttributeError: 'frozenset' object has no attribute 'add'

 2019-06-11 22:00:28

posted @ 2019-06-11 22:01  闪亮可可仙  阅读(394)  评论(0编辑  收藏  举报