略微不爽,视频讲课的,换老师了,听的有点别扭,在闹了两天小情绪后,仍是决定继续听了,看书看不进去,本身立了flag,含着泪也得竖起来啊。听了两段发现,也还能够,人TM的就是喜欢将就,没办法。python
新接触了<class 'set'>数据类型,让我对python又产生了新的见解,可能还会有其余的数据类型,作好思想准备(由于特么方法太多,难受)。app
<class 'set'>spa
其实从程序的角度来看, 变量就是用来记录状态的变化。也是说,给一个玩意附加一个铭牌,告诉Python(或其余语言),这个玩意叫啥。code
以上这行字,码的很没水平。视频
(1)按可变不可变来分(在内存中地址)blog
每个变量被赋值后,都会在内存中开辟一块空间,俗话说“使用内存”,根据开辟的这块空间可不能够改变,进行以下分类(专门写给chicken看的,后续有用):索引
# 实践证实,字典也是可变的数据类型 dic = {'name': '小果果', 'age': '2'} print(id(dic)) # 输出dic在内存中的位置 dic['name'] = '名字' # 修改字典中value的值 print(dic, id(dic)) dic.pop('name') # 删除字典中的数据keys和value print(dic, id(dic)) dic.update({'cloar': '棕色的'}) # 增长字典中的keys和value print(dic, id(dic))
name = 'hello' print(id(name)) name = '你好' print(id(name))
(2)按访问顺序内存
(3)存放元素个数rem
集合也是一种数据类型,有三大基本特色:字符串
建立集合
# 下面定义的这个name集合会报错,由于内含字典这种可变量 name = {{'name': '小果果', 'age': '2'}, 2, 'hello'} print(name)
用{set}建立,和字典同样,用大括号,只是没有映射关系的冒号。
1.name={1,2,3}
2.name=set{1,2,3}
注意,用 2. 方法,若是大括号内为可迭代数据类型,通常都给拆开,把迭代元素一个个放到集合中。
由于是无序的,和dict同样,无索引、无切片、无del、无index等功能
1.add()方法
2.clear()方法
3.copy()方法
4.pop()方法 #随机删除一个元素
5.remove()方法 #删除元素不存在时,报错
6.discard()方法 #删除元素不存在,不报错
# 求交集 s1 = {'没有起床气的', '小果果', '棕色的'} s2 = {'小果果', '卷毛的', '胆小的'} print(s1.intersection(s2)) # 输出 {'小果果'} print(s1 & s2)
# 求并集 s1 = {'没有起床气的', '小果果', '棕色的'} s2 = {'小果果', '卷毛的', '胆小的'} print(s1.union(s2)) # 输出 {'小果果', '没有起床气的', '棕色的', '胆小的', '卷毛的'} print(s1 | s2)
# 求差集,s1有,s2中没有的 s1 = {'没有起床气的', '小果果', '棕色的'} s2 = {'小果果', '卷毛的', '胆小的'} print(s1.difference(s2)) # 输出 {'没有起床气的', '棕色的'} print(s1 - s2)
须要注意set.difference_updats()用法,此为对s1进行update赋值,同理,intersection_update()、symmetric_difference_update()方法,知道就行,不用记住。
# 求补集,把s1和s2不同的输出 s1 = {'没有起床气的', '小果果', '棕色的'} s2 = {'小果果', '卷毛的', '胆小的'} print(s1.symmetric_difference(s2)) # 输出 {'卷毛的', '没有起床气的', '棕色的', '胆小的'} print(s1 ^ s2)
1.isdisjoint() #两个集合是否有交集,有交集返回False
2.issubset() #两个集合是否有子集
3.issuperset() #是否有父集
4.update() #放多个值进去,可迭代数据类型均可以,区分下union()
集合是可变数据类型,但能够定义成不可变集合
frozenset()方法定义。
列表 | 元组 | 集合 | 字典 | |
---|---|---|---|---|
英文 | list | tuple | set | dict |
能否读写 | 读写 | 只读 | 读写 | 读写 |
能否重复 | 是 | 是 | 否 | 是 |
存储方式 | 值 | 值 | 键(不能重复) | 键值对(键不能重复) |
是否有序 | 有序 | 有序 | 无序 | 无序,自动正序 |
初始化 | [1,'a'] |
('a', 1) |
set([1,2]) 或 {1,2} |
{'a':1,'b':2} |
添加 | append |
只读 | add |
d['key'] = 'value' |
读元素 | l[2:] |
t[0] |
无 | d['a'] |