zoukankan      html  css  js  c++  java
  • 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
    

      

  • 相关阅读:
    如何使用plsql导出oracle中的建表语句文件
    启动Tomcat 7.0 报 Server Tomcat v7.0 was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.
    Spring + springMvc + MyBatis 整合步骤(收藏)
    同台电脑部署多组Tomcat负载均衡(或集群)
    Apache+Tomcat部署负载均衡(或集群)
    WebLogic部署集群和代理服务器
    iOS视频直播初窥:高仿<喵播APP>
    iOS高仿:花田小憩3.0.1
    Preprocessor Macros
    App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. 解决方案
  • 原文地址:https://www.cnblogs.com/jianchixuexu/p/12521333.html
Copyright © 2011-2022 走看看