04 集合、字典、运算符

预习

    1. 字符串拼接 + 、%s、join、format
    1. 格式化输出 %s、%d、%f、%o、%x、%e、\n、\a、\b、\t
    1. 深复制、浅复制:嵌套列表

集合 :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

    1. 无序
    1. key 是唯一的,不可变的
    1. 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()      # 随机 弹出

你可能感兴趣的:(04 集合、字典、运算符)