zoukankan      html  css  js  c++  java
  • 五、列表、元组、字典、集合详解

    一、列表类型list

    1、用途:记录多个值(同种属性)可变类型

    2、类型转换
      list(*)
      其中括号内可以是所有可以用for循环的数据类型,如字符串、列表、字典、元组等

    3、常用操作及其内置方法
      l=['a','b','c','d','e']
      1、按索引存取值(正向存取+反向存取):即可存也可以取
        print(l[0])
        print(id(l[0]))
        l[0]='A'
        print(id(l[0]))
        两个id的值一样,所以列表是可变类型
      2、切片(顾头不顾尾,步长)
        print(l[1:4])
        结果:['b','c','d']
      3、长度
    len(l)
      4、成员运算 in 、not in
      5、追加值
        append(3333) 追加在列表后边
        assert(0,1111)

      6、删除del、remove、pop
        del l[0]
        remove('b')
        res=l.pop(0) #返回删除的那个值

      7、循环
        for item in l:
        print(item)
    4、****(需要掌握的操作)
      l.count('a')
      item=['1','2','3','4']
      l.extend(item)
      1.index('a')
      l.reverse()         直接将列表反转
      l.sort()           排序,默认从小到大
      l.sort(reverse=True)    从大到小排序

      l=[1,2,3,4,5,6]

      #正向步长
      l[0:3:1]     #[1, 2, 3]
      #反向步长
      l[2::-1]     #[3, 2, 1]
      #列表翻转
      l[::-1]      #[6, 5, 4, 3, 2, 1]


    二、元组类型tuple


    1、用途:元组就是一个不可变的列表
    2、定义方式:在()内用逗号分隔开多个任意类型的元素
    强调:
      l=['a']
      print(type(l),l[0])

      t=('a')
      print(type(t))
      print(t)

    类型转换
      t1=tuple('hello')
      t2=tuple([1,2,3])
      print(t1)
      print(t2)
    3、常用操作及其内置方法
    *****(优先掌握的操作):
    t=(1,2.2,'aa',('b','c'),['a','b','c'])
      1、按索引取值(正向取+反向取):只能取
        print(t[0])
        print(t[-1])
      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'))

      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]))


    三、字典dict


    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)])

    类型转换
    d=dict(x=1,y=2,z=3)
    print(d)

    items=[('name','egon'),('age',18),('gender','male')]
    d={}
    for item in items:
    d[item[0]]=item[1]

    d=dict(items)
    print(d)

    ***:
      keys=['name','age','gender','height','weight']
      d={}
      for key in keys:
      d[key]=None

      d={}.fromkeys(keys,None)
      print(d,type(d))

    3、常用操作+内置的方法
    *****(优先掌握的操作):
      1、按key存取值:可存可取
        dic={'name':'egon','age':18}
        dic['xxxx']                      #用中括号取值,没有该key会报错
        print(dic.get('name'))    #用get方法取值,如果该key不存在则返回None
        print(dic.get('xxx'))

        print(dic['name'])
        dic['name']='EGON'
        dic['gender']='male'
        print(dic)

        l=['a','b','c']
        l[0]='A'
        l[4]='AAA'

      2、长度len
        dic={'name':'egon','age':18}
        print(dic)
        print(len(dic))

      3、成员运算in和not in :是以字典的key为准的
        dic={'name':'egon','age':18}
        print('name' in dic)
        print('egon' in dic)


      4、删除del()、pop()、popitem()
        dic={'name':'egon','age':18}
        del dic['name']
        print(dic)

        res=dic.pop('name')        #pop会返回被删除的值
        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)


    ****(需要掌握的操作)
      dic={'name':'egon','age':18}
      dic={'name':'egon','age':18}
      dic.update({'age':19,'gender':'male'})
      print(dic)


      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)


    四、集合类型set


    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)

    数据类型转换
      res=set('hello')
      print(res)

      res=set([1,'a','b'])
      print(res)

    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('bbbbbb')  #删除不存在的元素会报错
      print(s1)
      print(res)

      s1.discard('bbb')           #删除不存在的元素不会报错
      s1.add(4)
      print(s1)










  • 相关阅读:
    网络爬虫基础练习
    综合练习:词频统计
    Hadoop综合大作业
    理解MapReduce
    熟悉常用的HBase操作
    第三章、熟悉常用的HDFS操作
    爬虫大作业
    数据结构化与保存
    使用正则表达式,取得点击次数,函数抽离
    爬取校园新闻首页的新闻
  • 原文地址:https://www.cnblogs.com/lanlan999/p/10002403.html
Copyright © 2011-2022 走看看