• 2019-07-04 列表、字典、集合、元组常用操作及内置方法


    今天接着昨天列表知识点

    一、列表

      1.count()  统计该元素在此列表中有几个   

    l = [1,4,5,6,4,6,7]
    print(l.count(6))     #2

      2.clear()   清空列表   []

    l = [1,4,5,6,4,6,7]print(l.clear())   #None    表示没有返回任何值
    print(l)       #[]

      3.reverse()     将列表反转(就是顺序调换输出) 

    l = [1,4,5,6,4,6,7]
    l.reverse()
    print(l)           #[7, 6, 4, 6, 5, 4, 1]

      4.sort () 排序  默认情况下是从小到大(升序)

    l = [1,4,5,6,4,6,7]
    l.sort()
    print(l)     #[1, 4, 4, 5, 6, 6, 7]

      sort和reverse结合就可以变成从大到小排序  

    l = [1,4,5,6,4,6,7]
    l.sort(reverse=True)
    print(l)    #[7, 6, 6, 5, 4, 4, 1]

      总结:

        1.能存多个值

        2.有序

        3.可变类型

      用已学的知识点做队列(先进先出)和堆栈(先进后出)

    l1 = []
    # 先进
    l1.append('first')
     l1.append('second')
    l1.append('third')
     # 先出
    print(l1.pop(0))
    print(l1.pop(0))
    print(l1.pop(0))
    # 先进
     l1.append('first')
     l1.append('second')
     l1.append('third')
    # 后出
     print(l1.pop())
     print(l1.pop())
     print(l1.pop())

    二、元组

      作用:能够存储多个元素,之间用逗号隔开,元素可以是任意类型,元组不能被修改

      定义:与列表相比,只不过是[]换成()

      age = (11,22,33)    #age = tuple((11,22,33))

      在定义元组的时候,哪怕只有一个元素的时候,也要用逗号隔开,区分一下  

    t1 = (1,2,3)
    print(type(t1))    #<class 'tuple'>
    t2 = (1)
    print(type(t2))    #<class 'int'>

      t  = tuple(1)   #报错,必须传容器类型就是可以for循环的

      需要掌握的操作:

        1.按索引取值

          t = (1,2,'a','b',[1,2,3])

          print(t[0])     # 1

        虽然说元组不能改,但是如果要修改里面的可变类型,你要先定位到修改数据的位置

    t = (1,2,'a','b',[1,2,3])
    t[-1][0] = '我改了'
    print(t)      #(1, 2, 'a', 'b', ['我改了', 2, 3])

        2.切片(顾头不顾尾,步长)

          print([::2])   #步长为2获取所有元素

        3.长度   len

          print(len(t))

        4.成员运算   in 和not in

          print ('a' in t)

        5.循环

          for i in t:

            print(i)

      总结:

        1.能存多个值

        2.有序

        3.不可变类型

    三、字典  dict

      作用:能存储多组key:value键值对,key是对value的描述   key通常都是字符串,这个key只能是不可变类型,value可以是任意类型数据

      定义: d ={'name':'jason','age':18}   #d = dict({'name':'jason','age':18})

      注意:字典的key是不能重复的,要唯一标识一条数据,如果你重复了,后面的就会覆盖前面的

      需要掌握的:

        1.按key存取值:可存可取 

    d = {'name':'jason','age':18}
    
    #
    print(d['name'])   #jason
    print(d['user'])    #如果字典中没有这个key,就会报错
    
    #修改
    d['name'] = 'oldboy'
    print(d)   #{'name': 'oldboy', 'age': 18}   如果是设置原字典中已经存在的key,就是修改
    
    #添加
    d['pwd'] = '123'
    print(d)     #{'name': 'oldboy', 'age': 18, 'pwd': '123'}  如果原字典中没有这个key,就是添加

        2.长度len()

          字典是统计键值对的个数

        3.成员运算 in 和 not in    (对于字典来说只能判断key值)   

    d = {'name':'jason','age':18}
    print('name' in d)  #True
    print('pwd' in d)    #False

        4.删除 pop(根据key来删除,返回的值是value。当删除字典中没有的key时,直接报错)

    d = {'name':'jason','age':18,'pwd':123}
    print(d.pop('name'))  #jason
    print(d)    #{'age': 18, 'pwd': 123}
    
    print(d.pop('user'))    #直接报错

        定义字典的三种方法:      

          1.掌握:   d1 = {'name':'oldboy','pwd':123}

          2.掌握:   d2  = dict(name = 'jason' , password = 123 , age = 18)  注意这里的key设置的时候不用写' '

          3.了解即可

    d ={}
    l = [
        ['name','jason'],
        ['age',18],
        ['hobby','read']
    ]
    
    for k,v in l:
        d[k] = v
    print(d)    #{'name': 'jason', 'age': 18, 'hobby': 'read'}
    
    #还有一种方法
    d3 = dict(l)
    print(d3)     #{'name': 'jason', 'age': 18, 'hobby': 'read'}

        5.键keys(),值values(),键值对items()

          keys是取出所有key放在一个列表中,values是取出所有value放在一个列表中,items是把每个键值对放在一个元组中,然后所有键值对组成一个列表。

    d = {'name':'jason','age':18,'pwd':123}
    print(d.keys())    #dict_keys(['name', 'age', 'pwd'])
    print(d.values())    #dict_values(['jason', 18, 123])
    print(d.items())    #dict_items([('name', 'jason'), ('age', 18), ('pwd', 123)])

        6.get()根据key获取value   (这种方法相对于d['name'] 直接取值的方法更好,因为这个在取不存在的key时,不会报错)   

        注意:不能写d.get('name') = xxx 这种赋值方式,赋值方式只能写d['name'] = xxx    

    d = {'name':'jason','age':18,'pwd':123}
    print(d.get('name'))    #jason
    print(d.get('age'))     #18
    print(d.get('user'))    #None
    print(d.get('aa','不存在的'))   #不存在的  
        第二个参数如果不写的话,当key不存在的话就返回None,写了就返回你写好的第二个参数信息

        需要掌握的:

        7.快速创建一个字典    fromkeys()

    d = {'name':'jason','age':18,'pwd':123}
    print(d.fromkeys(d,123))   #{'name': 123, 'age': 123, 'pwd': 123}
    print(d.fromkeys('sad',123))    #{'s': 123, 'a': 123, 'd': 123}

        8.popitem() 删除   尾部以元组格式弹出

    d = {'name':'jason','age':18,'pwd':123}
    print(d.popitem())    #('pwd', 123)
    print(d)    #{'name': 'jason', 'age': 18}

        9.setdefault()

    d1 = {'name':'jason','pwd':123}
    res1 = d1.setdefault('name','xxoo')  # 当键存在的情况下 不修改值 并且将原先key对应值返回给你
    print(d1,res1)    #jason
    res2 = d1.setdefault('age',18)  # 当键不存在的情况下 新增一个键值对 并且将新增的键值对的值返回给你
    print(d1,res2)     #18

        10.update()  如果updata字典里面没有的key,就会新加一个键值对。如果update原来存在的key,那么只会修改value

    d1 = {'name':'jason','pwd':123}
    d2 = {"age":18}
    d1.update(d2)
    print(d1)      #{'name': 'jason', 'pwd': 123, 'age': 18}
    
    d1.update(age=666)
    print(d1)    #{'name': 'jason', 'pwd': 123, 'age': 666}

        11.循环     字典循环结果是显示出key

        d1  ={'name':'jason','age':18}

        for i in d1:

          print(i)

      总结:

        1.存在多个值

        2.无序

        3.可变的

    四、集合    

        作用:去重、关系运算

        定义:可以包含多个元素,用逗号分开    s  = {1,2,3,4,5}      #  s = set()

        注意在定义空集合的时候只能用关键字 set() ,   空{}指的是字典

        集合的元素遵循三个原则:

          1.每个元素都必须是不可变元素

          2.没有重复的元素

          3.无序

        优先掌握的操作:

          1.长度len()

          2.成员运算  in 和 not in

          3.   | 合集    (两个集合合并)    两个班级的所有人

    pythons = {'jason', 'nick', 'tank', 'egon', 'kevin', 'owen', 'alex'}
    linux = {'frank', 'jerry', 'tank', 'egon', 'alex'}
    
    print(pythons | linux) #{'frank', 'tank', 'alex', 'jason', 'kevin', 'jerry', 'egon', 'owen', 'nick'}

          4.   & 交集   (两个集合的共同点) 两个班级都报名了   

    pythons = {'jason', 'nick', 'tank', 'egon', 'kevin', 'owen', 'alex'}
    linux = {'frank', 'jerry', 'tank', 'egon', 'alex'}
    
    print(pythons & linux)    #{'egon', 'alex', 'tank'}

          5.  - 差集     只报了一个班的学生    

    pythons = {'jason', 'nick', 'tank', 'egon', 'kevin', 'owen', 'alex'}
    linux = {'frank', 'jerry', 'tank', 'egon', 'alex'}
    
    #只报名pythons班级的学生
    print(pythons - linux)    #{'jason', 'kevin', 'nick', 'owen'}
    
    #只报名linux班级的学生
    print(linux - pythons)    #{'frank', 'jerry'}

          6. == 判断是否相等   

    s1 = {1,2,3}
    s2 = {1,3,2}
    print(s1==s2)    #True    因为集合是无序的

          7.     父集: >,>=     子集:<,<=    (判断是否包含)返回结果是True或者False

    s1 = {1,2,3}
    s2 = {1,3,2,4,5}
    print(s1<s2)     #True

    数据类型总结

      int

      float

      str

      list

      dict

      set

           tuple

      bool

      可变类型:list / dcit /set

      不可变类型: int /float /str /tuple

      按访问顺序区分:

        直接访问:数字

        顺序访问:字符串,列表,元组

        key值访问:字典

      

  • 相关阅读:
    Linux下环境变量配置错误 导致大部分命令不可以使用的解决办法
    问题1:kafka的message包括那些?
    zabbix4.4
    jdk1.8安装
    linux 环境python3安装
    Zabbix应用监控
    zabbix4.0.21部署
    AtCoder Beginner Contest 187
    Codeforces Round #690 (Div. 3)
    AtCoder Beginner Contest 185
  • 原文地址:https://www.cnblogs.com/wangcuican/p/11133504.html
Copyright © 2020-2023  润新知