集合三大特性
确定性,互异性,无序性
集合是可变类型,但集合里面的元####素是不可变类型!
注意集合用 set() 定义 转换
可以通过dir(+查询的对象) 查看对象的所有属性和方法方法
my_list = [1,1,2,3,4]
print(my_list)
#[1,1, 2, 3,3]
注意!在列表中是可以出现重复元素的,但是在集合中的重复元素会自动去重 这就是互异性
key值可以是元组,但不能是列表 因为元组是不可变类型 满足确定性
my_set={1,1,2,3,456,2,3}
print(my_set)#{456, 1, 2, 3}
此时为集合 也可以再次转化为列表
list(my_set) #[456, 1, 2, 3]
两种集合的定义方法 set()的类型转换 or 用{}直接定义
a = [1,2,4,4,5,5,6,6]
print(set(a),type(set(a)))#{1, 2, 4, 5, 6} <class 'set'>
b={1,2,3,4,4,5,6}
print(b,type(b))#{1, 2, 3, 4, 5, 6} <class 'set'>
三种运算 (交集(&),并集(|),差集(-))
c = {1, 2, 3, 4}
d = {5, 6, 7}
print(c & d)#set()没有交集
print(c|d)#{1, 2, 3, 4, 5, 6, 7}
print(c-d)#{1, 2, 3, 4}
print(d-c)#{5, 6, 7} 以前面那个集合为主
集合中的 增 删 改 查
增 add
add将元素增加到集合中,不能加到列表中 ovo!
my_add = {'hello','new'}
my_add.add('world')#注意此处add后面数小括号喔!
print(my_add)#如果没有sorted,则随机排序{'world', 'new', 'hello'} 体现了无序性
print(sorted(my_add))#['hello', 'new', 'world']有sorted则按照规则
删 pop remove
pop
my_pop= {'you','I','he'}
print(my_pop.pop())#随机删除 并返回删除的元素!
当集合由元组或者列表组成时,pop从左往右删
remove是从集合中删除一个元素,但必须有才行
f = {'I','LOVE','YOU'}
f.remove('I')#注意remove没有返回值 没有则报错
print(f)#{'YOU', 'LOVE'}
改 update
update(可迭代对象) 与序列类型的extend相似,都可以将元素拆开后添加,没有返回值喔!
g = {'zxcv',123564,'zjh'}
g.update('hello')
print(g)#{'o', 'e', 'zxcv', 123564, 'zjh', 'h', 'l'}
查 isdisjoint issubset issuperset
isdisjoint 判断是否有交集
x = {1,2,3,4,5,6}
y = {1.2,3,4,5,6,7,8,9}
w = {'helll'}
z = x.isdisjoint(y)
print(z)#有则False
print(w.isdisjoint(y))#无则True
issubset 判断是否包含于
print(x.issubset(y))#False x包含于y
issuperset 判断是否包含另一个集合
字典的知识点
两种定义方式:
my_information={'name':'lihua','height':'180cm','age':18}#这叫键值对形式
# my_information2=dict(a=zhang,b=li)
修改和添加的方式
字典的增删改查
增 setdefault 有则查 无则增 增加的是键值对
my_information={'name':'lihua','height':'180cm','age':18}
my_information.setdefault('age',18)#如果后面这个数不写,则是none 只有键,没有值
print(my_information)#{'name': 'lihua', 'height': '180cm', 'age': 18}
删 clear pop popitem
clear() 直接清空
print(my_information.clear())#None
pop() 方法删除字典给定键 key 及对应的值
a = my_information.pop('name')
print(a)#lihua,,返回值为被删除的值,key 值必须给出,否则返回default 值
print(my_information)#{'height': '180cm', 'age': 18}
popitem 返回并删除最后一对键和值
print(b.popitem())#('w', 3),返回值为被删除值
改 (旧dict).update(新dict) 可以有多个键值对!
dict1 = {'name': 'Tom', 'age': 25}
dict2 = {'sex': 'male', 'email': 'tom@qq.com'}
dict1.update(dict2)
print("合并后的字典为:", dict1)
#合并后的字典为:{'name': 'Tom', 'age': 25, 'sex': 'male', 'email': 'tom@qq.com'}
查 get keys values items
get 得到key对应的value值
也可以通过索引取得
print(dict1[0])# Tom
print(dict1.get('name'))# Tom 如果没有则输出none!
print(dict1['name'])#也可以用索引的方式查,但是如果没有则报错!
keys 取出所有的key值
print(dict2.keys())#dict_keys(['sex', 'email'])
values 与上面相似,但这个是取出所有value
items 是取出所有键和值
print(dict1.items())
dict_items([('name', 'Tom'), ('age', 25), ('sex', 'male'), ('email', 'tom@qq.com')])
== != >= 的用法
==表示判断
!= 表示不等于
>= 表示大于且等于
and 的用法 两边的结果都成立则返回 True
True and True 返回 True
True and False 返回 False
False and False 返回 False
False and True 返回 False
or 的用法 两边的结果有一个成立则返回 True
False or True 返回 True
False or False 返回 False
True or False 返回 True
True or True 返回 True
not 用法 相反的结果
not True 返回 False
not False 返回 Frue
注意 Python中可以用 数字*字符的形式来重复输出
s1='s'*10
print(s1)#ssssssssss
+= -= != 等用法
a+=1 等价于 a=a+1 其他类似