预习
- 字符串拼接 + 、%s、join、format
- 格式化输出 %s、%d、%f、%o、%x、%e、\n、\a、\b、\t
- 深复制、浅复制:嵌套列表
集合 :set() 用 {} 定义,具有唯一性且无序
() tuple、[]list、{}set 、dict
se = {1, 2, 3, 4}
se2 = {1, 2, 3, 3, 4} # se2[0] 因为集合是无序的,所以不能用索引
se3 = {1, 2, 3, 'd', 4}
set() 相当于强制类型转换
se5 = set([1, 2, 3])
可变对象,不能成为集合的元素,破坏唯一性
li = [1, 2]
se = {'a', li}
集合的运算:并集、交集、差集、与非集^
se1 = {1, 2, 3, 4, 5}
se2 = {4, 5, 6, 7, 'a'}
se3 = {1, 2, 3, 'd', 4}
se1 | se2 # 并集:将两个集合 拼接 到一起,去掉重复部分
# {1, 2, 3, 4, 5, 6, 7, 'a'}
se1 | se2 | se3
# {1, 2, 3, 4, 5, 6, 7, 'd', 'a'}
se1 & se2 # 交集:取出相同部分
# {4, 5}
se1 - se2 # 差集:减去两个集合共有的部分,取前面的集合
# {1, 2, 3}
se2 - se1
# {'a', 6, 7}
se1 ^ se2 # 与非集:将两个集合并集,然后去掉重复部分
#{1, 2, 3, 6, 7, 'a'}
集合常用方法
se.add(5) # 添加单个元素
se.clear() # 清空集合
se.update() # 同时可以添加多个元素,必须是可迭代对象(tuple, list, str )
se.remove() # 移除元素 ,指定一个元素
se.pop() # 随机弹出
######空集合
```python
s = set ()
集合取值
se = list(se) # 可以转换成 list ,然后用索引再取,强制类型转换
se = set(se)
集合是可变的
se = {'b', 1, 2, 3, 4, 'a', 's', 'd', 'x', 'c'}
#{'b', 1, 2, 3, 4, 'a', 's', 'd', 'x', 'c'}
id(se)
# 50971816
se.add('zhangge')
se
#{'b', 1, 2, 3, 4, 'a', 'zhangge', 's', 'd', 'x', 'c'}
id(se)
#50971816
强制类型转换
a = int(1.1)
b = float(1)
c = bool(1)
# True
c = bool(0) # 只会 0 会转换成 False ,其它的都会转换成 True
# False
d = complex(2)
#(2+0j)
li = [1, 2, 3]
tu = (1, 2, 3)
s = 'abc'
li = list(tu)
li = list(s)
# li = list(1) 报错,必须是可迭代对象
tu = tuple(li)
tu = tuple(s)
# tu = tuple(1) 报错,必须是可迭代对象
s = str(li)
#"['a', 'b', 'c']"
s = str(tu)
#"('a', 'b', 'c')"
s = str(1)
'1'
字典 : 键值对 key - values
- 无序
- key 是唯一的,不可变的
- values 值是可变的
di = {'a' : 2, 'b' : 3, 'c' : 4, 'a' : 1}
dict 两种定义方式
di5 = {'a' : 1}
di3= {1 : 2}
符合,变量命名规范
di2 = dict(a = 1)
# di3 = dic( 1 = 2) 报错
字典取值
di['a']
添加、修改:没有就添加新的 key 进去,有就修改值values
di['a'] = 10
di['zhangge'] = 'zhangge'
di
#{'a': 10, 'b': 3, 'c': 4, 'zhangge': 'zhangge'}
di['zhangge'] = 5
di
#{'a': 10, 'b': 3, 'c': 4, 'zhangge': 5}
字典的常用方法
di.clear() 清空
di2 = di.copy() # 生成一个新的对象
di.fromkeys('asd') # 重新生成一个字典,不改变原字典 di
di.fromkeys('asd',2)
di.get('a') # 取值
di.get('d', 'not find') # 没有值,就返回 not find
di.items() # 返回每一个键值对
#list(di.items()) # 转成list
#list(di.tiems())[0] # 利用索引拿到键值对
di.keys() # 返回所有的 key
list(di.keys()) # 传入 list
di.pop('a') # 指定弹出
di.pop('w', 'not find') # 如果没有 'w' ,就返回 'not find'
di.popitem() # 随机 弹出