zoukankan      html  css  js  c++  java
  • python第六天

    今日所学:

     目录:

             1,深浅拷贝

             2,元组类型

             3,字典类型

             4,集合类型

    深浅拷贝:

                    分为值拷贝,深拷贝,浅拷贝。而值拷贝是最常见的,也是应用场                   景最多的。

    元组类型:

                   元组是不可变的列表,它包括1)值可以为任意类型。2)可以存放                   多个值_可以进行成员运算。3)可以存放重复的值_可以计算成员                  出 现的次数。4)有序存储_可以通过索引取值,可以切片。

    元组类型的常规操作:

                                1.索引取值

                                  print(t1[1], type(t1[1]))

                                  print(t1[-3])

                                  

                                 2.运算(拼接)

                                   print((1, 2) + (2, 3))

                                 3.长度

                                    print(len(t1))

                                 4.切片

                                     print((2, 1, 3)[::-1])

                                  5.成员运算

                                      print(True in t1)

                                      print(False in t1)  # False == 0, t1中如果有0或                                               False,      该结果都是True

                                  6.for循环  

                                     for obj in t1: 

                                           print(obj, end=" ")    

                                     print()

           方法:print(t1.count(0))  # 对象0在元组中出现的次数

                      print(t1.index(123, 4, len(t1))) # 对象0在区间4~末尾第一次出现的                    索引

    字典类型:------> 字典类型的相关概念

                   分为:容器(集合):存放多个值的变量

                              单列容器(系统中的单列容器很多)list | tuple 

                              双列容器(map):只有dict,存放数据 成对出现,dict存放                            数据采用 key-value键值对方式

    字典中的key必须是不可变类型

       --key是取value的唯一依据,key一旦被确定,就需要唯一确定(不能改变)

    字典中的value可以为任何类型

      --value是用来存放世间所有存在的数据 

    key要确保唯一性,不能重复,只可以重复,并且可以被改变--字典为可变类型

     dic = {'a': 10, 1: 20, True: 30, (): 40} # 1和True都是1,key具有唯一性,所以只保留最后一次值

    print(dic) # {'a': 10, 1: 30, (): 40}

    字典的定义:

    # 空字典

    d1 = {}
    d2 = dict()
    # 用map映射创建字典
    d3 = dict({'a': 1, 'b': 1})
    print(d3)
    # 用关键字赋值方式
    d4 = dict(name='Bob', age=18) # 参数=左侧的名字就是合法的变量名,都会被转化为字符串形式的key
    print(d4)
    # 创建有多个key值采用默认值的方式: 默认值不写默认None,也可以自定义
    d5 = {}.fromkeys('abc', 0)
    print(d5)

    字典的操作:

    dic = {'a': 1, 'b': 2}
    print(dic)

    # 增: 字典名[key] = 值 => key已存在就是修改值,不存在就是新增值
    dic['c'] = 3
    print(dic)
    # 改
    dic['c'] = 30
    print(dic)
    # 查:字典名[key]
    print(dic['c']) # 只能查找已有的key,没有崩溃
    # 有默认值的查询:有key取出对应value,没有返还默认值,默认值可以自定义
    print(dic.get('d', 'http://www.baidu.com'))
    # 删
    print(dic)
    # 清空
    # dic.clear()
    # pop(k)删除指定key的value并返还删除的value
    # res = dic.pop('a')
    # 从dic末尾删除,返还(key, value)形成的元组
    res = dic.popitem()
    print(dic, res)

    其他方法:

    更新: a有值覆盖,c没被新操作,带下来,b为新增,增加并赋值
    dic = {'a': 1, 'c': 2}
    d = {'a': 10, 'b': 20}
    dic.update(d)
    print(dic) # {'a': 10, 'c': 2, 'b': 20}

    # 带默认值的新增: 新增key,key已有,啥事不干,没有添加key,值就是第二个参数
    dic.setdefault('z', 100)
    print(dic)


    # 字典的循环
    # 1.直接循环,就是循环得到key
    # for k in dic:
    # print(k)

    # 2.循环keys
    # print(dic.keys())
    # for k in dic.keys():
    # print(k)

    # 3.循环values
    # print(dic.values())
    # for v in dic.values():
    # print(v)

    # 同时循环key和value (key, value)
    print(dic.items())
    # a, b = (1, 2)
    # print(a, b)
    # for res in dic.items():
    # print(res)
    # 重点
    for k, v in dic.items():
    print(k, v)

    # 解压赋值
    # a, _, _, b = (1, 2, 3, 4)

    集合类型:空集合不能用{ },因为用来标识字典

    s = set()
    print(s, type(s))

    # 概念:
    # 1.set为可变类型 - 可增可删
    # 2.set为去重存储 - set中不能存放重复数据
    # 3.set为无序存储 - 不能索引取值
    # 4.set为单列容器 - 没有取值的key
    # 总结:set不能取值

    # 增
    s.add('1')
    s.add('2')
    s.add('1')
    print(s)
    s.update({'2', '3'})
    print(s)

    # 删
    # res = s.pop()
    # print(res)
    # s.remove('1')
    # print(s)
    s.clear()
    print(s)


    # set运算
    # 交集:两个都有 &
    py = {'a', 'b', 'c', 'egon'}
    lx = {'x', 'y', 'z', 'egon'}
    print(py & lx)
    print(py.intersection(lx))

    # 合集:两个的合体 |
    print(py | lx)
    print(py.union(lx))

    # 对称交集:抛出共有的办法的合体 ^
    print(py ^ lx)
    print(py.symmetric_difference(lx))

    # 差集:独有的
    print(py - lx)
    print(py.difference(lx))

    # 比较:前提一定是包含关系
    s1 = {'1', '2'}
    s2 = {'2'}
    print(s1 < s2)

              

  • 相关阅读:
    Golang Failpoint 的设计与实现
    没涉及到最值求解;观点:矩阵乘法无法表达出结果。 现实生活中事件、现象的数学表达
    多元微分学 枚举破解15位路由器密码 存储空间限制 拆分减长,求最值 数据去重
    ARP Poisoning Attack and Mitigation Techniques ARP欺骗 中间人攻击 Man-In-The-Middle (MITM) attack 嗅探 防范 Can one MAC address have two different IP addresses within the network?
    The C10K problem
    HTTP Streaming Architecture HLS 直播点播 HTTP流架构
    现代IM系统中消息推送和存储架构的实现
    现代IM系统中的消息系统架构
    长连接锁服务优化实践 C10K问题 nodejs的内部构造 limits.conf文件修改 sysctl.conf文件修改
    doubleclick cookie、动态脚本、用户画像、用户行为分析和海量数据存取 推荐词 京东 电商 信息上传 黑洞 https://blackhole.m.jd.com/getinfo
  • 原文地址:https://www.cnblogs.com/niubikuang/p/10732743.html
Copyright © 2011-2022 走看看