zoukankan      html  css  js  c++  java
  • 列表,元组,字典,集合

    一、列表类型
    # ======================================基本使用======================================
    # 1、用途:记录多个值(同种属性)
    # 2、定义方式:在[]内用逗号分隔开多个任意类型的值
    # l=['a','b','c'] #l=list(['a','b','c'])

    # 类型转换
    # l=list('hello')
    # l=list({'x':1,'y':2})
    # print(l)

    # 3、常用操作+内置的方法
    #优先掌握的操作:
    l=['a','b','c','d','e']
    #1、按索引存取值(正向存取+反向存取):即可存也可以取
    # print(l[0])
    # print(l[-1])
    # print(id(l))
    # l[0]='A'
    # print(id(l))

    # l[4]='EEEEEE'
    # print(l)

    # l[5]='dddddd'
    # print(l) #报错


    #2、切片(顾头不顾尾,步长)
    l=['a','b','c','d','e']
    # print(l[1:4])
    # print(l)


    #3、长度
    # l=['a','b','c','d','e']
    # print(len(l))

    #4、成员运算in和not in
    # print('a' in l)
    # print('ssssss' not in l)

    #5、追加&插入
    # l=['a','b','c','d','e']
    # l.append(3333333)
    # l.append(44444)
    # print(l)
    # append追加一个子列表直接往后面加
    # l.insert(0,11111111111)
    # print(l)
    # insert根据索引插入元素

    #6、删除
    # l=['a','b','c','d','e']
    # del l[0]
    # res=l.remove('b')
    # print(l)
    # print(res)
    # remove按照元素单纯的删除某个元素,没有返回值
    # res=l.pop(0)
    # print(l)
    # print(res)
    # pop按照元素的索引删除某个元素并且拿到该元素的返回值

    #7、循环
    # l=['a','b','c','d','e']
    # for item in l:
    # print(item)

    #需要掌握的操作
    # l=['a','b','a','c','d','e']
    # print(l.count('a')) #计数

    # l=['a','b','a','c','d','e']
    # items=[1,2,3,4,5]
    # # for item in items:
    # # l.append(item)
    #
    # l.extend(items)
    # print(l) #追加,一次往列表末尾追加多个值


    # l=['a','b','a','c','d','e']
    # print(l.index('a',2,5)) #寻找索引


    # l=['a','b','a','c','d','e']
    # l.reverse()
    # print(l) #翻转

    # l=[10,-1,3,11,9]
    # l.sort() #从小到大排列
    # l.sort(reverse=True)
    # print(l) #从大到小排列


    # ======================================该类型总结====================================
    # 存多个值
    # 有序
    # 可变(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())
    print(l.pop())
    print(l.pop()) pop后面不写默认-1

    二、元组tuple:
    # ======================================基本使用======================================
    # 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',)
    # 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])
    # 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')) #计数

    # ======================================该类型总结====================================
    # 存多个值
    # 有序(有索引的都叫有序)
    # 不可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

    三、字典类型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['gender']='male'
    # print(dic)
    # 直接往后面加值

    #2、长度len 字典不能出现重复的key,出现了只留后面定义的会把前面的覆盖掉
    # dic={'name':'egon','age':18}
    # print(len(dic))

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


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

    # res=dic.pop('name') 根据key删,返回值是删掉的key对应的value
    # print(dic)
    # print(res)

    # res=dic.popitem() 随机删,返回值是key:value
    # 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) #name age

    # for k in dic.keys():
    # print(k) #name age

    # for v in dic.values():
    # print(v) #egon 18

    # for k,v in dic.items(): #k,v=('name', 'egon')
    # print(k,v) #name egon
    age 18 (解压赋值)


    # 需要掌握的操作
    # dic.get(key) #根据key取value以后经常要用到的
    # 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)

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


    四、集合类型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('bb')
    # print(s1)
    # print(res) #指定要删除的元素,单纯的删没有返回值,当元素不存在报错

    # s1.discard('bbb')#根据元素删,当元素不存在时,不会报错
    # s1.add(4)
    # print(s1) #加值随机加
    # ======================================该类型总结====================================
    # 存多个值
    # 无序
    # 可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash)

    # 集合的去重
    # 局限性
    #1. 只能针对不可变类型
    #2. 不能保证原来的顺序
    # names=['egon','egon','egon','alex','alex','kevin']
    # new_names=list(set(names))
    # print(new_names)
    集合去重一般用不到,如下方法我们要用这个:
    l=[
    {'name':'egon','age':18,'sex':'male'},
    {'name':'alex','age':73,'sex':'male'},
    {'name':'kevin','age':20,'sex':'female'},
    {'name':'egon','age':18,'sex':'male'},
    {'name':'egon','age':18,'sex':'male'},
    ]
    new_l=[]
    for dic in l:
    if dic not in new_l:
    new_l.append(dic)
    print(new_l)

    总结:只能存一个值:整型int 浮点型float 字符串str
    能存多个值(容器):列表list 元组tuple 字典dict 集合set

    可变:列表list 字典dict 集合set
    不可变:整型int 浮点型float 字符串str 元组tuple

    取值方式:
    只能按照变量名:整型int 浮点型float
    按照索引取值:字符串str 列表list 元组tuple 他们又叫做序列类型
    按照key取值(映射类型):字典dict
    集合set 不涉及取值

  • 相关阅读:
    吾爱破解2018-2020优秀文章合集
    分享一个零基础入门学习Python(第2版)带课件及源码
    fiddler抓包工具详细配置方法,多图详细(转)
    浏览器提速,支持95%的国产浏览器(转)
    易语言5.92学习版
    Android Studio 之 ViewModel (转)
    一款易语言软件启动前修改(劫持DLL注入修改)【转】
    某桌球辅助登录算法分析并转本地验证
    软件虚拟机保护分析资料整理
    HttpCanary其他教程
  • 原文地址:https://www.cnblogs.com/lizeqian1994/p/10002517.html
Copyright © 2011-2022 走看看