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

  

原文地址:https://www.cnblogs.com/jianchixuexu/p/12521333.html