python入门到秃顶(4):散列类型、运算符优先级和逻辑运算
一,散列
集合
1,集合特征:
1.2,具有唯一性,集合里面不存在相同元素
1.2,具有无序性,集合里面的元素不存在索引
1.3,具有可变性,集合是可变的对象
2,集合定义:
2.1,用set ( ) 类型转换的方法得到集合
2.3,s = set ( ) 这样直接定义一个空集合
2.2,s = {1,2,3} 像这样直接定义
3,集合的运算
3.1,求交集 s & s1 求两个集合共有的元素
3.2,求并集 s | s1 把两个集合里面的元素相加,重复的只出现一次
3.3,求差集 s - s1 被减集合减去 与减集合里相同的元素,然后输出
4,集合的方法
4.1,增
-add(元素) 一次只能添加一个
-update({元素},序列,字符串) 更新列表,添加元素到集合里面
4.2,删
-pop()随机删除集合里面的一个元素
-remove(参数) 删除指定元素,若元素不存在报错
4.3,查(了解)
-isdisjoint()没有交集返回True,有交集返回False
-issubset(参数)判断当前对象是否为传入对象的子集
-issuperset(参数)判断当前对象是否为传入对象的父集
字典
1,字典的特征:
1.1,以键值对形式存在
1.2,键值对具有唯一性,若创建的时候有重复的则会保留后面的键值对
1.3,键是不能变的,值是可以改变
1.4,本身是无序的,在往里面添加元素的时候看上去给人的感觉是有序的
2,字典定义:
2.1,s = {'name':'xingyibin','age':'20'} 像这样直接定义
2.2,s = dict(name='xingyibin',age='20') 以关键值赋值
2.3,- fromkeys(序列,参数)把这个序列类型对象里的每个元素作为键生成字典,默认值为None,能传参作为值
3,集合的方法:
3.1,增
-setdefault(键,参数)接受一个键名,去字典里找,找到了就返回对应的数据,找不到就把这个键以键值对的形式添加到字典,可以添加一个参数作为值
3.2,删
- clear() 清空字典
- pop(键) 接受一个键名,删除这个键值对,并把值返回给我们
- popitem() 随机删除并返回一对键值对
3.3,查
- s [键] 取出这个键所对应的值,若不存在**会**报错
- get(键) 取出这个值所对应的值,若不存在**不会**报错
- keys() 返回当前所有的键
- values() 返回当前所有的值
- items() 查看所有的键值对数据
3.4,改
- s [键] = 元素 直接把这个键所对应的值修改
- update({键:值}) 添加键值对更新原字典
3.5,复制
-copy() 浅复制发生在值的嵌套字典
三,比较运算符
等于 :== is 判断内存地址是否相同 ==判断值表面的数据是否相等
不等于 :!=
大于等于 :>=
小于等于 :<=
大于 :>
小于 :<
四,逻辑运算符
与(并且) :and 只有当and左右两边的条件都为真的时候才返回True,只要一边有一个条件为假,就为假
>>> True and False
False
>>> True and True
True
>>> False and False
False
或(或者) :or 只有or两边有一个条件为真,那么就返回真
>>> True or False
True
>>> True or True
True
>>> False or False
False
非(反):not 如果本来为真,加上not就是假
>>> not True
False
>>> not False
True
五,判断类型
-isinstance(参数,数据类型)判断第一个参数和第二个参数数据类型是不是相同的
六,运算符优先级
a += 1 ----> a = a + 1
a -= 1 ----> a = a - 1
a *= 1 ----> a = a * 1
在python中相等和相同时两个不同的概念
is 判断内存地址是否相同 ==判断值表面的数据是否相等
- 在python里面有一个机制,当我们的对象值是整数且在-5~256这个范围内,那么这些对象使用的都是同一个内存