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 坚持是多么伟大的事情 阅读(230) 评论(0) 收藏 举报
浙公网安备 33010602011771号