zoukankan      html  css  js  c++  java
  • Python数据类型-续

    day 6

    一、列表

    1、基本使用:

    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字(它的位置),或索引,第一个索引是0,第二个索引是1,依此类推。

    #列表类型
    # ======================================基本使用======================================
    # 1、用途:记录多个值(同种属性)
    # 2、定义方式:在[]内用逗号分隔开多个任意类型的值
    # l=['a','b','c'] #l=list(['a','b','c'])
    # 类型转换
    # l=list('hello')
    # l=list({'x':1,'y':2})
    # print(l)
    2、列表中值的访问(存取、切片):

    使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符(切片)

    #按索引存取值(正向存取+反向存取):即可存也可以取
    l=['a','b','c','d'"e"]
    # print(l[0])    #取出列表中的第一个值
    # print(l[-1])   #取出列表中的最后一个值
    # print(id(l))   #取出列表的内存地址
    # l[0]='A'       #字符串中这种操作回报错  但在列表中不会  这样会改变相应位置上的元素的值
    # print(id(l))   #修改过内部索引对应的值以后ID不会改变   列表即为可变型
    # l[4]='EEEEEE'  
    # print(l)
    # l[5]='EEEEEE'  #不存在的索引,会出现报错
    切片(顾头不顾尾)
    # print(l[1:4])
    # print(l)
    #结果: ['b','c','d']
    3、列表更新(增加、插入):
    增加
    # l=['a','b','c','d','e']
    # l.append(3333333)
    # l.append(44444)          #在最后增加
    # print(l)
    插入
    # l.insert(0,11111111111)  #在指定位置插入
    # print(l)
    4、删除列表中的元素:
    # l=['a','b','c','d','e']
    # del l[0]                #通用型删除方法
    # res=l.remove('b')       #直接移除  无返回值  参数一个(删除对象)
    # print(l)
    # print(res)
    # res=l.pop(0)           #删除   并且返回删除值  参数默认最后一个值
    # print(l)
    # print(res)
    5、循环列表:
    # l=['a','b','c','d','e']
    # for item in l:
    #     print(item)
    6、长度和成员运算:
    #长度
    # l=['a','b','c','d','e']
    # print(len(l))
    #成员运算in和not in
    # print('a' in l)
    # print('ssssss' not in l)
    7、列表的函数和方法汇总:

    a、函数

    序号函数备注
    1 cmp(list1, list2) 比较两个列表的元素
    2 len(list) 列表元素个数
    3 max(list) 返回列表元素最大值
    4 min(list) 返回列表元素最小值
    5 list(seq) 制造列表

     

     

     

     

     

     

    b、方法

    序号 方法备注
    1 list.append(obj) 在列表末尾添加新的对象
    2 list.count(obj) 统计某个元素在列表中出现的次数
    3 list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
    4 list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
    5 list.insert(index, obj) 将对象插入列表
    6 list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
    7 list.remove(obj) 移除列表中某个值的第一个匹配项
    8 list.reverse() 反向列表中元素
    9 list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序

     

     

     

     

     

     

     

     

     

     

     

     

     

    c、类型总结:

    # ======================================该类型总结====================================
    # 存多个值
    # 有序
    # 可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)
    # 练习题
    #1. 队列:先进先出
    l=[]
    # # 入队
    l.append('first')
    l.append('second')
    l.append('third')
    print(l)
    # # 出队
    print(l.pop(0))
    print(l.pop(0))
    print(l.pop(0))
    ​
    #2. 堆栈:后进先出
    l=[]
    # 入栈
    l.append('first')
    l.append('second')
    l.append('third')
    print(l)
    # 出栈
    print(l.pop())  #pop的参数不写默认为-1
    print(l.pop())
    print(l.pop())

    二、元组

    1、基本使用:

    Python的元组与列表类似,不同之处在于元组的元素不能修改。

    元组使用小括号,列表使用方括号。

    元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

    # ======================================基本使用======================================
    # 1、用途:元组就是一个不可变的列表
    # 2、定义方式:在()内用逗号分隔开多个任意类型的元素
    # t=(1,2.2,'aa',('b','c'),['a','b','c']) # t=tuple(...)
    # print(type(t))
    # 强调:
    # l=['a']
    # print(type(l),l[0])
    # t=('a',)    #当元组中只有一个元素时,必须要加上一个逗号,不然python解释器无法辨别为元组
    # print(type(t))
    # print(t)
    # msg=('hello world')
    # 类型转换
    # t1=tuple('hello')
    # t2=tuple([1,2,3])
    # print(t1)
    # print(t2)
    2、基本操作:

    a、内置函数

    序号函数备注
    1 cmp(tuple1, tuple2) 比较两个元组元素。
    2 len(tuple) 元组元素个数
    3 max(tuple) 返回元组元素最大值
    4 min(tuple) 返回元组元素最小值
    5 tuple(seq) 制造元组













    基本操作:
    #优先掌握的操作:
    # t=(1,2.2,'aa',('b','c'),['a','b','c'])
    #1、按索引取值(正向取+反向取):只能取
    # print(t[0])
    # print(t[-1])
    # t[0]=1111111111
    #2、切片(顾头不顾尾,步长)
    # t=('a','b','c','e','f')
    # print(t[1:4])
    #3、长度
    # print(len(t))
    #4、成员运算in和not in
    # print('a' in t)
    #5、循环
    # for item in t:
    #     print(item)
    # 需要掌握的操作
    # t=('a','b','c','e','a','f')
    # print(t.index('a',1,5))    #查找元素对象
    # print(t.count('a'))        #对元素进行计数

      

    3、元组总结
    # ======================================该类型总结====================================
    # 存多个值
    # 有序
    # 不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)
    # t=('a','b','c')     
    # print(id(t))
    # t=('A','B','C')
    # print(id(t))
    ​
    注:下面这种看似改变元组的值的操作实质上并没有改变元组,元组中的索引所对应的地址没有发生变化
    #t=('a',111,['b','c'])
    #print(id(t[0]),id(t[1]),id(t[2]))
    #t[2][0]='B'
    # print(t)
    #print(id(t[0]),id(t[1]),id(t[2]))

    三、字典

    1、基本使用:

    字典是另一种可变容器模型,且可存储任意类型对象。

    字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 。

    # ======================================基本使用======================================
    # 1、用途:记录多个值,列表是索引对应值,而字典是key对应值,其中key对value有描述性的功能
    # 2、定义方式:在{}用逗号分隔开多个元素,每个元素都是key:value的形式,
    其中key可以是不可变类型,但通常是字符串类型
    而value可以是任意类型
    # d={1:'aaa',2.2:'bbb','xxx':'ccc',(1,2,3):'dddd'} #d=dict(...)
    # print(d[(1,2,3)])
    # 类转换  字典的三种制造方法
    ##1
    # d=dict(x=1,y=2,z=3)
    # print(d)
    ##2  针对一下这种由多个有两个元素构成的元组组成的列表
    # items=[('name','egon'),('age',18),('gender','male')]
    # d={}
    # for item in items:
    #     d[item[0]]=item[1]
    # d=dict(items)
    # print(d)
    ##3
    # 了解  快速创造一个包含指定key的字典
    # keys=['name','age','gender','height','weight']
    # d={}
    # for key in keys:
    #     d[key]=None
    # d={}.fromkeys(keys,None)
    # print(d,type(d))
    2、字典的操作方法:

    a、优先掌握的操作:

    # 3、常用操作+内置的方法
    #优先掌握的操作:
    #1、按key存取值:可存可取
    dic={'name':'egon','age':18}
    # dic['xxxx']             #key在字典中不存在,则会发生报错
    # print(dic.get('name'))  #获取字典中的key(get传入的参数)的值
    # print(dic.get('xxx'))   #如果get传入的key在字典中不存在,则返回None
    # print(dic['name'])
    # dic['name']='EGON'      #修改字典中key所对应的值
    # dic['gender']='male'    #如果字典中没有这个key,则新增一个key:value元素
    # print(dic)
    # l=['a','b','c']         #
    # l[0]='A'                #修改列表中所对应索引的值
    # l[4]='AAA'              #列表中没有此索引,出现报错
    #2、长度len
    # dic={'name':'egon','age':18}  
    # print(dic) 
    # print(len(dic))        #统计字典中key或者value的个数
    #3、成员运算in和not in :是以字典的key为准的
    # dic={'name':'egon','age':18}
    # print('name' in dic)        
    # print('egon' in dic)
    ​
    ​
    #4、删除
    dic={'name':'egon','age':18}
    # del dic['name']         #通用删除符
    # print(dic)
    # res=dic.pop('name')     #删除name所对应的value病将其返回
    # print(dic)
    # print(res)
    # res=dic.popitem()     #随机删除字典中的一组元素
    # print(res)
    #5、键keys(),值values(),键值对items()
    # 在python2
    # >>> dic={'name':'egon','age':18}
    # >>> dic.keys()
    # ['age', 'name']
    # >>> dic.values()
    # [18, 'egon']
    # >>> dic.items()
    # [('age', 18), ('name', 'egon')]
    # 在python3
    # >>> dic={'name':'egon','age':18}
    # >>> dic.keys()
    # dict_keys(['name', 'age'])
    # >>> dic.values()
    # dict_values(['egon', 18])
    # >>> dic.items()
    # dict_items([('name', 'egon'), ('age', 18)])
    #6、循环
    # dic={'name':'egon','age':18}
    # for k in dic:
    #     print(k)
    # for k in dic.keys():
    #     print(k)
    # for v in dic.values():
    #     print(v)
    # for k,v in dic.items():   #k,v=('name', 'egon')
    #     print(k,v)

    b、需要掌握的操作:

    # 需要掌握的操作
    # dic={'name':'egon','age':18}
    # dic={'name':'egon','age':18}
    # dic.update({'age':19,'gender':'male'})  将update中的字典更新到旧字典,两边都有的key,值以新字典中的为准,旧字典中没有的进行新增。
    # print(dic)
    # setdefault方法:有返回值
    # dic={'name':'egon','age':18}
    # 当key存在时,不改原值,返回原值
    # res=dic.setdefault('name','EGON')
    # print(dic)
    # print(res)
    # 当key不存在时,增加新值
    # res=dic.setdefault('gender','male')
    # print(dic)
    # print(res)

    3、字典总结:

    # ======================================该类型总结====================================
    # 存多个值
    # 无序
    # 可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

    a、字典的内置函数:
    序号函数备注
    1 cmp(dict1, dict2) 比较两个字典的元素
    2 len(dict) 字典元素个数,即键的总数
    3 str(dict) 输出字典可打印的字符串表示。
    4 type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型

     

     

     

     

     

     

     

    b、字典的内置方法:

    序号 方法备注
    1 dict.clear() 删除字典内所有元素
    2 dict.copy() 返回一个字典的浅复制
    3 dict.get(“key”) 返回指定键的值,如果值不在字典中返回default值
    4 dict.update(dict2) 把字典dict2的键/值对更新到dict里。
    5 dict.pop(“key”) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
    6 dict.popitem() 随机返回并删除字典中的一对键和值。
    7 dict.setdefault(key,val) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default。
    8 dict.keys() 以列表返回一个字典所有的键。
    9 dict.values() 以列表返回字典中的所有值。
    10 dict.items() 以列表返回可遍历的(键, 值) 元组数组。
    11 dict.has_key(“key”) 如果键在字典dict里返回true,否则返回false。
    12 dict.fromkeys(seq,val) 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值。

     

     

     

     

     

     

     

     

     

    四、集合

    1、基本使用:
    # ======================================基本使用======================================
    # 1、用途:I: 关系运算  II:去重
    # 2、定义方式:在{}内用逗号分隔开多个元素,但是元素的特点是
    # I: 集合内的元素必须是不可变类型
    # II: 集合内元素无序
    # III: 集合内元素不能重复
    # s={1,'aaa',2,} #s=set(...)
    # print(s,type(s))
    # s=set()
    # print(s,type(s))
    # s={1,1,1,1,1,1,1,1,1,1,1,1,'a','a','a'}
    # print(s)     #实际保存的集合为{1,"a"}
    # 数据类型转换
    # res=set('hello')
    # print(res)    #{"h","e","l","o"}
    # res=set([1,'a','b'])
    # print(res)   #{1, 'a', 'b'}
    2、基本操作:
    # 3、常用操作+内置的方法
    #优先掌握的操作:
    #1、长度len             同其他类型
    #2、成员运算in和not in   同其他类型
    ​
    ​
    pythons={'张铁蛋','李铜淡','王金蛋','赵银胆','alex','kevin'}
    linuxs={'oldboy','张铁蛋','赵银胆','alex','wxx'}
    ​
    3、|合集:求所有报名的学生
    # print(pythons | linuxs)
    # print(pythons.union(linuxs))
    4、&交集:求同时报名两门课程的学生
    # print(pythons & linuxs)
    5、-差集: 求只报名python课程的学员
    # print(pythons - linuxs)
    # print(linuxs - pythons) #求只报名linux课程的学员
    6、^对称差集:求没有同时报名两门课程的学生
    # res=(pythons - linuxs) | (linuxs - pythons)
    # res=pythons ^ linuxs
    # print(res)
    7、==  判断两个集合是否互为父子集 即是否相等
    # s1={1,2,3}
    # s2={3,2,1}
    # print(s1 == s2)
    # 注意:父子集描述的是一种包含与被包含的关系
    8、父集:>=  用于判断父子集  判断包含关系
    9、子集:<=
    # s1={1,2,3}
    # s2={1,2,3,4}
    # print(s2 >= s1)
    # print(s1 <= s2)
    # 需要掌握的
    # s1={1,2,3}
    # s1.update({3,4,5,6})  同字典的更新
    # print(s1)
    ​
    s1={1,'aa','bb',3}
    # print(s1.pop())       随机移除一个元素
    # res=s1.remove('bbbb')  从集合中删除元素'bbbb', 如果不存在则引发 KeyError
    # print(s1)
    # print(res)
    # s1.discard('bbb')  如果在 set “s”中存在元素 x, 则删除
    # s1.add(4)
    # print(s1)

    3、集合总结:

    # ======================================该类型总结====================================
    # 存多个值
    # 无序
    # 可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)
    # 集合的去重
    # 局限性
    #1. 只能针对不可变类型
    #2. 不能保证原来的顺序

     

  • 相关阅读:
    人生苦短_我用Python_javascript_var_function_简单笔记_001
    人生苦短_我用Python_logging日志操作_011
    人生苦短_我用Python_configparser/yaml对配置文件读取/写入操作_010
    人生苦短_我用Python_pymysql库对Mysql数据库操作_009
    人生苦短_我用Python_openpyxl库读取Excel文件数据_008
    人生苦短_我用Python_Try_Exception异常捕捉_007
    命令行下编译打包安卓apk
    构建微服务实验环境
    Docker的安全问题以及一些预防方案
    Go 微服务实践
  • 原文地址:https://www.cnblogs.com/peng-zhao/p/10002826.html
Copyright © 2011-2022 走看看