美文网首页软件测试视觉艺术
python基础知识(二)---组合数据类型

python基础知识(二)---组合数据类型

作者: 小高有点 | 来源:发表于2020-06-08 15:31 被阅读0次

    组合数据类型

    1.序列: 分为 列表---list 和 元组---tuple

    相同点:都可以包含任何类型的 多个数据,并且元素之间有顺序关系,访问元素时 可以通过下标数值 指定某一个元素

    区别: 元组是固定数据(内部元素一旦确定后 不能改变), 列表的元素可变

    声明元组: 使用小括号 表示初始化元素
    t=(1,2.5,True,"abc")
    
    声明列表: 使用中括号 表示初始化元素
    l1=[1,2.5,True,"abc"]
    l2=[]   # 可声明空列表, 之后再增加元素
    
    统一使用方括号 加下标访问某一个元素
    print(t[0])     # t[0]    表示列表第一个元素
    print(l1[-1])   # l1[-1]  表示访问倒数 第一个元素
    
    可以访问一个区间内的所有元素  [n1:n2] 从n1下标到n2下标之间的所有元素(不包含n2号元素); [n1:] n1号下标之后的所有元素
    字符串 可以当做元组 看待,  每一个字符  就是一个元素
    str1="abcdefghijk"
    print(str1[-3:])   # 从倒数第3到  到最后的元素
    print(str1[3:6])   # 获取3号到5号元素
    print(str1[3:8:2])  # 获取3号到7号元素中 每间隔一个元素获取
    
    修改元素 ,只能对列表
    t[0]=10   元组不支持改变元素
    
    验证 list的常用方法
    1.追加元素
        l2.append(10)
        l2.append(20.5)
        print(l2)
    
    2.插入元素
        l2.insert(1, True)
        print(l2)
    
    3.移除一个数值的 元素
        l2.remove(20.5)
        print(l2)
    
    4.指定元素位置  “弹出”pop 一个元素
        v=l2.pop(0)
        print(v)
        print(l2)
    
    5.列表内部元素排序, 元素必须都是 数值类型 才能排序
        l3=[5,9,4,8,3,7,2,6,1]
        l3.sort()   # 默认 按升序 排序
        print(l3)
        l3.sort(reverse=True)   # reverse=True 表示 倒序
    
        print(l3.sort(reverse=True))
    
    6.如果对元组排序
        t2=(5,9,4,8,3,7,2,6,1)
        print( sorted(t2) )
        print(t2)
    

    2.无序 组合数据类型: 集合--set 字典--dict

    相同点:set 和 dict内部 都可以保存 任意类型的多个数据,这些数据之间没有顺序关系,所以在获取 内部元素是只能随机获取一个;set 和 dict 的元素都是唯一的, 字典中只是key必须唯一

    区别:set内部的每个元素是单个数据,dict 内部的每一个元素 是一对数据(称为 键值对)

    声明 set
    s1={1,2,3,3,0,True,"abc",False}   # 如果元素有重复会自动去除重复,1 和 True 是一样的数据
    print(s1)   #因为 元素是无序的, 所以打印时  显示没有固定顺序,  代表获取元素 是随机的
    
    通过列表创建集合
    l1=[1,2,3,3]
    s2=set(l1)  # 把列表转成 集合类型, 过程中 会自动 去除  重复
    print(s2)
    
    声明字典
    d1={1:"a",2:"b",3:"c", "d":4}
    d2={"a":"hello", "T":True, "F":False, "F":123 }  # 字典的key必须唯一, 如果重复了, 取最后出现的 键值对
    print(d1)
    print(d2)
    
    字典的访问
    1.通过key来访问对应的 value
        print(d1[1],d1["d"])    
    2.随机获取字典中的 一个元素(键值对)
        v2=d1.pop(3)
        print(v2)
        print(d1)
        print(d1.popitem())   # 字典的popitem() 方法随机弹出一对键值对,弹出后会从字典中移除
    3.字典增加或更新一个元素
        d1[4]="hello"   #如果没有这个key 就是增加一对 键值对
        print(d1)       
        d1[4]="world"   #更新键值对
        print(d1)
    
    集合的访问
    1.只能随机弹出一个元素
        print(s1.pop())  # 随机弹出一个元素后  该元素被移除
        print(s1)
        # s1.remove(3)   # 移除的数据 必须存在
        print(s1)
    2.集合增加一个元素
        s1.add("hello")
        print(s1)
    
    3.集合运算
        s3={1,2,3,4,5,6,7,8}
        s4={5,6,7,8,9,10,11,12}
        print( s3 & s4)  # 交集运算
        print( s3 | s4)  # 并集运算
        print( s3 - s4)   # 差集运算,  左边集合中 去掉 和右边集合中 相同的元素
        print( s4 - s3)
        
        print( s3 ^ s4)  #补集运算, 取出两个集合中 唯一的部分, 去掉共同的部分
    

    组合数据类型 课堂练习

    1.假设有ip列表ipList = ["172.31.21.18","172.31.21.19","172.31.21.20",
    "172.31.21.18","172.31.21.19","172.31.21.18","172.31.21.23",
    "172.31.21.18","172.31.21.20","172.31.21.20","172.31.21.23",
    "172.31.21.21"] 计算出 每个ip地址出现的次数
    
        ipList = ["172.31.21.20","172.31.21.19","172.31.21.20","172.31.21.18",
        "172.31.21.19","172.31.21.18","172.31.21.23","172.31.21.18",
        "172.31.21.20","172.31.21.20","172.31.21.23","172.31.21.20"] 
        ipset=set(ipList)
        c=0
        ip=''
        for i in ipset:
            print(i,"出现了%d次" %ipList.count(i))
                if ipList.count(i)>c:
                    c=ipList.count(i)
                    ip=i
        print("出现次数最多的ip地址是%s,对应的次数数%d" %(ip,c) )
    
    2.给你一个list, 例如 L = [5, 1, 2, 3, 4, 8,-5] 输出L的中位数
    #中位数是指 对已排序的数集取其中间数,数集为偶数 取中间两数的平均
        l1 = [5, 1, 2, 3, 4, 8, -5,11]
        l1.sort()  # 对原始列表元素 排序
        print(l1)
        if len(l1) % 2 == 0 :  # 如果有偶数个 元素
            print("列表元素的中位数是", (l1[len(l1) // 2] + l1[len(l1) // 2 - 1]) / 2)
        else:
            print("列表元素的中位数是", l1[len(l1) // 2])   # len(l1) // 2  列表元素个数  “整除”2。  序列下标写小数会报错
    
    3.给你一个字典a = {1:1, 2:2, 3:3}, 输出字典a的keys ,以',' 连接,如 '1,2,3'。 
    #字符串连接的方法字符串型数据.join字符串列表
        a = {1:1, 2:2, 3:3}
        l1=[]
        for i in a.keys():
            l1.append(str(i))
        print(",".join(l1))   #  字符串类型的 join方法拼接的  多个元素 必须都是  字符串型
    

    相关文章

      网友评论

        本文标题:python基础知识(二)---组合数据类型

        本文链接:https://www.haomeiwen.com/subject/leyltktx.html