3.散列类型

集合三大特性

确定性,互异性,无序性

集合是可变类型,但集合里面的元####素是不可变类型!

注意集合用 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

屏幕截图 2023-07-16 170647.png

屏幕截图 2023-07-16 170658.png

注意 Python中可以用 数字*字符的形式来重复输出

s1='s'*10
print(s1)#ssssssssss

+= -= != 等用法
a+=1 等价于 a=a+1 其他类似

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、集合(元素不重复,无序的无法通过下标取值) 两种定义方法 set = { 1,2,3,4 } ...
    大现在进行时阅读 379评论 0 0
  • 散列类型 1.集合 特性无序(无序性)不重复(互异性)、集合的元素是不可变类型(确定性) 定义方法: set() ...
    拿媳妇换糖阅读 122评论 0 0
  • # # 散列类型,集合、字典、逻辑运算符 # # 集合,增,删,改,查 ,特殊(集合三大特性,唯一性,无序性,确定...
    兵哥v5阅读 134评论 0 0
  • # 集合的定义和特性 #定义 a = {1,2,'hello'}#里面必须有不可变类型元素 b = [1,1,2,...
    宁静致远学以致用阅读 92评论 0 0
  • 集合 定义 1.a={1,2,3}是一个集合,用{}表示集合的话,李米娜必须添加元素2.用a=set()也可表示一...
    lwg_a585阅读 117评论 0 0