zoukankan      html  css  js  c++  java
  • day06 字典、元组、set的方法及常用操作

    今日内容:

      1、深浅拷贝

      2、元组

      3、字典

      4、set

    1、深浅拷贝

    # 1、值拷贝
    # 采用赋值的方法进行
    # 只会将堆区容器变量与栈区的绑定关系进行复制
    
    
    # 2、浅拷贝
    # 会将堆区与栈区的绑定关系,以及容器类型中包含的每个元素的id进行复制
    # 使用方法为 容器类型.copy()
    
    
    # 3、深拷贝
    # 会将绑定关系、容器类型、每个元素的值重新复制然后开辟空间进行存储
    # 使用方法为:
        from copy import deepcopy
        deepcopy(原容器)

    2、元组

    """
    元组的基本操作及常用方法
    """
    """
    基本操作
    """
    # 1、定义
    t1 = (1,5,8,7,6,[10,20,40,50,30],"a","b","c")
    
    # 2、索引取值
    print(t1[5])  # [10, 20, 40, 50, 30]
    
    # 3、切片
    print(t1[6::1])  # ('a', 'b', 'c')
    
    # 4、遍历
    for i in t1:
        print(i,end=' ')  # 1 5 8 7 6 [10, 20, 40, 50, 30] a b c
    print()
    
    # 5、计算长度
    print(len(t1))
    
    # 6、拼接
    print(t1 + (100,200))  # (1, 5, 8, 7, 6, [10, 20, 40, 50, 30], 'a', 'b', 'c', 100, 200)
    
    # 7、成员运算
    print(100 in t1)  # False
    
    """
    方法
    """
    # 1、计数
    print(t1.count(1,))  # 1
    
    # 2、查询索引
    print(t1.index(8))  # 2

    2、字典的操作及常用方法

       (1)常用操作

    """
    字典的操作
    """
    # 1、字典的定义
    dic = {}
    dic = dict(name="andy",age=18,gender="man")  # 括号必须用小括号
    dic = {}.fromkeys([0,1,2,3,4])  # 将第一个参数作为key值,如果设置第二个参数,则value值为设置的值,如果不设置第二个参数,则默认为 None
    # 使用fromkeys创建字典时,所有的值都指向一个空间,如果该空间为可变类型,那么通过key改变一个值,其余的值也会随之改变。
    print(dic) dic = {"name":"andy","age":18,"gender":"man"} # 1、根据key取值 print(dic["name"]) # andy # 2、计算长度 print(len(dic)) # 3 # 3、成员运算 ---> 进行key值得成员运算 print("name" in dic) # True print("andy" in dic) # False # 4、遍历 for i in dic: # ----> 取出的是key值 print(i) for k,y in dic.items(): print(k,y)

      (2)常用方法

    """
    常用方法:
    """
    # 1、增  --> 如果字典中不存在某个key,只需要进行赋值操作就可以
    dic["weight"] = "50"
    print(dic)  # {'name': 'andy', 'age': 18, 'gender': 'man', 'weight': '50'}
    
    # 2、改  -->  如果字典中存在某个key,只需要进行赋值操作就可以
    dic["name"] = "lice"
    print(dic)  # {'name': 'lice', 'age': 18, 'gender': 'man', 'weight': '50'}
    
    # 3、查  --> 可以通过key值进行查值
    print(dic["age"])  # 18  --> 如果没有索引的key值,会报错
    print(dic.get("haha","没有"))  # 没有   ---> 没有索引的key值,会返回给定的结果
    
    # 4、删  pop / popitem
    item = dic.pop("name")  # -->  存在一个返回值,这个返回值就是value
    print(item)  # ---> 返回值是value
    print(dic)  # {'age': 18, 'gender': 'man', 'weight': '50'}
    
    item = dic.popitem()  # 取出最后一个值
    print(item)
    
    # dic.clear() # 清空字符串
    
    # 从字典里面进行取值
    print(dic.items())  # 取出所有的键值对,并以迭代器进行存储  ---> dict_items([('age', 18), ('gender', 'man')])
    print(dic.values())  # 取出值,以迭代器尽心存储 ---> dict_values([18, 'man'])
    print(dic.keys())  # 取出key值,以迭代器进行存储  --->  dict_keys(['age', 'gender'])

      (3)其它方法

    """
    其它方法
    """
    # 1、update 方法:
    dic = {"name":"andy","age":18,"gender":"man"}
    dic_new = {"name":"li","weight":50,"address":"河北"}
    dic.update(dic_new)
    print(dic)  # {'name': 'li', 'age': 18, 'gender': 'man', 'weight': 50, 'address': '河北'}
    
    dic_new.update(dic)
    print(dic_new)  # {'name': 'li', 'weight': 50, 'address': '河北', 'age': 18, 'gender': 'man'}
    
    # 2、setdefault 方法:
    dic = {"name":"andy","age":18,"gender":"man"}
    dic_new = {"name":"li","weight":50,"address":"河北"}
    
    dic.setdefault("key",10)   # ---> setdefault 括号中至少有一个值,是key,括号中两个值一个是key,一个是value
    print(dic)  # {'name': 'andy', 'age': 18, 'gender': 'man', 'key': 10}

    3、set类型

      (1)常用操作

    """
    常用操作
    """
    # 1、定义
    s1 = set()  # --->  空集合的定义
    
    # 2、增加
    s1.add(1)  # ---> 将括号中的值添加进 s1
    
    # 3、删除
    s1.remove(1)  # ---> 从集合中删除指定值
    
    s1 = {"2",'3','5','4','9','6','7','8',"1"}
    item = s1.pop()  # --->  删除一个值,并将值进行返回
    # print(item)
    
    s1.clear()  # ---> 删除集合中的所有值

      (2)运算

    """
    集合的运算
    """
    # 1、交集  &  ---> 两个集合都包含的值
    se1 = {1,2,5,9,8}
    se2 = {1,10,7,9,6}
    items = se1 & se2
    print(items)   # --> 是一个集合类型  {1, 9}
    
    # 2、合集  |  ---> 两个的总和
    print(se1 | se2)  # {1, 2, 5, 6, 7, 8, 9, 10}
    
    # 3、对称交集 ^   ---->  总和 - 交集
    print(se1 ^ se2)  # {2, 5, 6, 7, 8, 10}
    
    # 4、差集  - 集合中独有的部分
    print(se1 - se2)  # se1中有而se2中没有的  {8, 2, 5}
    print(se2 - se1)  # se2中有而se1中没有的  {10, 6, 7}
    
    # 5、比较   < 必须是包含与被包含关系
    s5 = {1,2}
    s6 = {1,2,3}
    print(s5 < s6)  # True
    print(s5 > s6)  # False
  • 相关阅读:
    初识nginx
    Keepalived 配置实例
    ssh学习小记
    代码开发、测试及发布
    需求改进&系统设计
    软件设计原则、设计模式学习+部分实现
    自我介绍+课程 6 问
    python函数嵌套出现报错UnboundLocalError原理的猜测(有解决办法,但是对于报错原理不确定)
    python tkinter 问题(多个Listbox选取显示问题,虚拟事件的特点为何虚拟,listbox.nearest函数与虚拟事件绑定返回值错误,StringVar类参数调用时单向性,线程无响应)
    python tkinter pack布局遇到的错误和问题总结(无图)
  • 原文地址:https://www.cnblogs.com/lice-blog/p/10733232.html
Copyright © 2011-2022 走看看