2020年3月18日python学习笔记——字典 集合
坚持+思考+输出
1、学习方式:查看提供视频(30分钟)+自我整理笔记(2小时)+周末视频输出
2、笔记方式按提问方式整理。
# dictionaries={ # # "key1": "good", # 3: "int", # (1,2,3): "toupe" # } # # print(dictionaries["key"]) #取值方式 # print(dictionaries[3]) # print(dictionaries[(1,2,3)]) # 特性: # 1、 key-value结构 # 2、key必须为不可变数据类型、必须唯一 # 3、可存放任意多个value、可修改、可以不唯一 # 4、无序 # 5、查询速度快,且不受dict的大小影响,至于为何快?我们学完hash再解释 # 创建字典的方式 # 1、dictionaries={ "key": "good", "3": "int", (1,2,3): "toupe"} #person = dict(key1='seven', age="int") 次方式只能使用字符串 # print(dir(dictionaries)) 自带的方法 # 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values' dictionaries={ "key1": "good", "love": "int", "(1,2,3)": "toupe" } dic2={"hh":"bucuo","hh1":"233"} # 增加操作 # dictionaries["like"] = "[1,2,3]" # print(dictionaries) # # dictionaries.setdefault("小武哥","优秀") # print(dictionaries) # 删除操作 # dictionaries.pop("小武哥") # 删除指定key # dictionaries.popitem() # 随便删除1个key # del dictionaries["love"] # 删除指定key,同pop方法 # dictionaries.clear() # 清空dict # 修改操作 # dictionaries['key'] = 'new_value'#如果key在字典中存在,'new_value'将会替代原来的value值; # print(dictionaries) # dictionaries.update(dic2) #将字典dic2的键值对添加到字典dictionaries中 # print(dictionaries) #查操作 # print(dictionaries['key1']) #返回字典中key对应的值,若key1不存在字典中,则报错; # print(dictionaries.get("key1" , default = "hh"))#返回字典中key1对应的值,若key不存在字典中,则返回default的值(default默认为None) # print('key' in dictionaries ) #若存在则返回True,没有则返回False # print(dictionaries.keys() ) #返回一个包含字典所有KEY的列表; # print(dictionaries.values() ) #返回一个包含字典所有value的列表; # print(dictionaries.items() ) #返回一个包含所有(键,值)元组的列表; # 循环 直接循环取出 字典对应的key 和 vule # for k in dictionaries.keys(): # print(k,dictionaries[k]) # # for k,v in dictionaries.items(): # print(k,v) # # for k in dictionaries: # 推荐用这种,效率速度最快 # print(k)
# 集合 : 当你了解了数学的集合 那么你学习python的集合就简单了 # 定义 # 集合跟我们学的列表有点像,也是可以存一堆数据,不过它有几个独特的特点,令其在整个Python语言中占有一席之地, # 里面的元素不可变,代表你不能存一个list、dict 在集合里,字符串、数字、元组等不可变类型可以存 # 天生去重,在集合里没办法存重复的元素 # 无序,不像列表一样通过索引来标记在列表中的位置 ,元素是无序的,集合中的元素没有先后之分,如集合{3,4,5}和{3,5,4}算作同一个集合 # 基于上面的特性,我们可以用集合来干2件事,去重和关系运算————————重点 # 创建 # name ={1,"小武哥",(1,2.3),1} # print(name) #{1, (1, 2.3), '小武哥'} 特性直接去重 # 帮列表去重:帮列表去重最快速的办法是什么? 就是把它转成集合,去重完,再转回列表 # a = [1,2,3,3,"jhj",1,2,3,(2,1,2),{"key":"name"}] # # print(a) # # a = [1,2,3,3,"jhj",1,2,3,(2,1,2),(2,1,2)] # # print(list(set(a))) ######列表去重复 # 增删改查 a = {1,2,3,3,"jhj",1,2,3,(2,1,2)} # print(dir(a)) # 集合对应方法 # 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', # 'intersection_update', 'isdisjoint','issubset', 'issuperset', 'pop', 'remove', \ # 'symmetric_difference', 'symmetric_difference_update', 'union', 'update #增加 add # a.add('a') # print(a) #删除 discard :删除一个存在的值,如果这个值不存在,do nothing. pop: 删除任意值 # a.discard(1) # print(a) # a.pop() # print(a) #改 呵呵,不能改。。。 #查 in 在则返回True print("jhj" in a) # 关系运算 : 交集 & 、并集 or 合集 |、 差集 - 、 对称差集, 把脚踩2只船的人T出去(^ )。和数学集合运算一样 s_1024 = {"佩奇","老男孩","海峰","马JJ","老村长","黑姑娘","Alex"} s_pornhub = {"Alex","Egon","Rain","马JJ","Nick","Jack"} print(s_1024 & s_pornhub) print(s_1024 | s_pornhub) print(s_1024 - s_pornhub) print(s_1024 ^ s_pornhub) # 两个集合之间一般有三种关系,相交、包含、不相交。在Python中分别用下面的方法判断: # isdisjoint issubset issuperset print(s_1024.isdisjoint(s_pornhub)) # 判断2个集合是不是不相交,返回True or False print(s_1024.issubset(s_pornhub)) # 判断s_1024是不是s_pornhub的子集,返回True or False print(s_1024.issuperset(s_pornhub)) # 判断s_1024是不是s_pornhub的父集,返回True or False
posted on 2020-03-18 23:38 坚持是多么伟大的事情 阅读(224) 评论(0) 编辑 收藏 举报