zoukankan      html  css  js  c++  java
  • 数据类型总结(二)(列表,元组,字典)

    一.变量的赋值操作

    x=1
    a=10
    b=10
    #
    #链式赋值
    a=b=c=d=e=f=10
    print(a,b,c,d,e,f)
    
    
    #多元赋值
    #方式一
    x=1
    y=2
    
    z=x #z=1
    x=y #x=2
    y=z #y=1
    print(x,y)
    #方式二:python特有
    x,y=y,x
    print(x,y)
    
    #增量赋值
    x=10
    x+=1 #x=x+1
    print(x)
    
    
    
    #解压序列类型
    s='hello'
    a=s[0]
    b=s[1]
    c=s[2]
    d=s[3]
    e=s[4]
    print(a,b,c,d,e)
    a,b,c,d,e=s
    print(a,b,c,d,e)
    
    a,_,_,_,e='alexs'
    print(a,e)
    print(_)
    
    
    a,*_,e='alexs'
    print(a,e)
    
    
    m,n,*_='alexs'
    print(m,n)
    
    *_,m,n='alexs'
    print(m,n)
    View Code

    二.列表

    定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素
    特性:
    1.可存放多个值
    2.可修改指定索引位置对应的值,可变
    3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序
    用途(存多个值,可以修改):爱好,装备,女朋友们
    hobby=['play','eat','sleep']
    方法:
    hobby.append
    hobby.remove
    操作:
    查看:
    >>> girls=['alex','wsb',['egon','ysb']]
    >>> girls[2]
    ['egon', 'ysb']
    >>> girls[2][0]

    增加
    girls.append(元素)
    删除
    girls.remove(元素)
    del girls[元素的索引]
    修改
    girls[0]='alexSB'

    列表的拼接:

    #1.用list的extend方法,L1.extend(L2),该方法将参数L2的全部元素添加到L1的尾部,例如:
    
    L1 = [1, 2, 3, 4, 5]
    L2 = [20, 30, 40]
    L1.extend(L2)
    print(L1)  #[1, 2, 3, 4, 5, 20, 30, 40]
    
    #2.用切片(slice)操作,L1[len(L1):len(L1)] = L2和上面的方法等价,例如:
    
    L1 = [1, 2, 3, 4, 5]
    L2 = [20, 30, 40]
    L1[len(L1):len(L1)] = L2
    print(L1)   #[1, 2, 3, 4, 5, 20, 30, 40]
    
    #但切片方法用起来更灵活,可以插入到头部,或其他任意部位,例如:
    加到开头:
    
    L1 = [1, 2, 3, 4, 5]
    L2 = [20, 30, 40]
    L1[0:0] = L2
    print(L1)   #[20, 30, 40, 1, 2, 3, 4, 5]
    
    #3加到中间:
    
    L1 = [1, 2, 3, 4, 5]
    L2 = [20, 30, 40]
    L1[1:1] = L2
    print(L1)   #[1, 20, 30, 40, 2, 3, 4, 5]
    列表的拼接
    #定义列表
    # l=[1,'a',[3,4]]  #l=list([1,'a',[3,4]])
    
    #取值
    # print(l[0])
    # print(l[2][0])
    #
    # l=[1,2,[['a','b'],'c']]
    # print(l[2][0][1])
    
    #循环
    l=[1,2,3,[4,5]]
    
    # count=0
    # while count < len(l):
    #     print(l[count])
    #     count+=1
    
    
    # for count in range(len(l)):
    #     print(l[count])
    # l=[1,2,3,[4,5]]
    # for count in range(len(l)):
    #     if type(l[count]) is list:
    #         #pass
    #         for i in range(len(l[count])):
    #             print(l[count][i])
    #     else:
    #         print(l[count])
    
    
    
    # l=[1,2,3,[4,5]]
    # l_size=len(l)
    # for index in range(l_size):
    #     value=l[index]
    #     if type(value) is list:
    #         #value是列表,value=[4,5]
    #         for i in range(len(value)):
    #             print(value[i])
    #     else:
    #         #value不是列表,直接打印
    #         print(value)
    
    
    
    
    #
    # print('没有修改之前的列表:',id(l),type(l),l)
    #
    
    #id不动,type也不动,value被修改了,则称为可变类型
    #可变指的是:在id和type不动的前提下,值可变
    
    # print(l[0])
    # print(l[2][1])
    # l[0]=11111111111111111
    # print(l)
    # print('修改之后的列表:',id(l),type(l),l)
    
    
    
    #列表常用操作
    # 索引
    # 切片
    # l=['ab',1,2,'hello']
    # print(l[1:3]) #切片操作是读操作,并不会修改原来的数据
    # print(l)
    
    # 追加
    # l=['ab',1,2,'hello']
    # print(l)
    # l.append('alex')
    # l.append('alex1')
    # l.append('alex2')
    # l.append('alex3')
    # print(l)
    # 插入
    # l.insert(0,'first')
    # print(l)
    # l.insert(2,'abc')
    # print(l)
    # 删除
    # l=['a','b','c','hello']
    # print(l)
    # l.pop(1)
    # print(l)
    # l.pop()
    # l.pop()
    
    # l.pop(0)
    # l.pop(0)
    # print('刚刚删除的元素是',l.pop(0))
    #
    # print(l)
    
    
    #队列:先进先出
    l=[]
    #append与pop(0)
    #入队列
    # l.append('people1')
    # l.append('people2')
    # l.append('people3')
    # print(l)
    #出队列
    # print(l.pop(0))
    # print(l.pop(0))
    # print(l.pop(0))
    
    #insert(0,item)
    #入队
    l.insert(0,'people1')
    l.insert(0,'people2')
    l.insert(0,'people3')
    # print(l)
    
    #出队
    # print(l.pop())
    # print(l)
    # print(l.pop())
    # print(l)
    # print(l.pop())
    
    #堆栈:先进后出,或者说后进的先出
    #append与
    # l=[]
    # l.append('people1')
    # l.append('people2')
    # l.append('people3')
    # print(l)
    
    
    # print(l.pop())
    # print(l.pop())
    # print(l.pop())
    
    # 长度
    
    l=[1,2,3]
    
    # print(len(l))
    
    # 切片
    # 循环
    # 包含
    # s='alex is sb'
    # print('sb' in s)
    #
    # names=['alex','egon','yuanhao']
    # print('yuanhao' in names)
    
    
    
    #列表的其他操作
    l=list(['a1','a2','a3'])
    
    # print(l)
    # print(l.index('a2'))
    #
    # l.append('a2')
    # print(l.count('a2'))
    # print(l)
    # l.extend([1,2,3])
    # l.append([1,2,3])
    # print(l)
    
    # print(l)
    # l.remove('a2')
    
    # l=['a1','a2','a1','a1','a3']
    # l.remove('a1')
    # print(l)
    
    # l=[2,3,1]
    # l.sort(reverse=True)
    # print(l)
    
    # l=['a','c','alex']
    # l.reverse()
    # print(l)
    View Code
    # l=[1,2,3] #l=list([1,2,3])
    # print(type(l))
    
    #pat1===》优先掌握部分
    #  索引
    #
    #     切片
    l=['a','b','c','d','e','f']
    
    # print(l[1:5])
    # print(l[1:5:2])
    # print(l[2:5])
    # print(l[-1])
    
    
    #了解
    # print(l[-1:-4])
    # print(l[-4:])
    # l=['a','b','c','d','e','f']
    # print(l[-2:])
    
    #     追加
    # hobbies=['play','eat','sleep','study']
    # hobbies.append('girls')
    # print(hobbies)
    
    #     删除
    hobbies=['play','eat','sleep','study']
    # x=hobbies.pop(1) #不是单纯的删除,是删除并且把删除的元素返回,我们可以用一个变量名去接收该返回值
    # print(x)
    # print(hobbies)
    
    # x=hobbies.pop(0)
    # print(x)
    #
    # x=hobbies.pop(0)
    # print(x)
    
    #队列:先进先出
    queue_l=[]
    #入队
    # queue_l.append('first')
    # queue_l.append('second')
    # queue_l.append('third')
    # print(queue_l)
    #出队
    # print(queue_l.pop(0))
    # print(queue_l.pop(0))
    # print(queue_l.pop(0))
    
    
    #堆栈:先进后出,后进先出
    # l=[]
    # #入栈
    # l.append('first')
    # l.append('second')
    # l.append('third')
    # #出栈
    # print(l)
    # print(l.pop())
    # print(l.pop())
    # print(l.pop())
    
    #了解
    # del hobbies[1] #单纯的删除
    # hobbies.remove('eat') #单纯的删除,并且是指定元素去删除
    
    
    #     长度
    # hobbies=['play','eat','sleep','study']
    # print(len(hobbies))
    
    #     包含in
    # hobbies=['play','eat','sleep','study']
    # print('sleep' in hobbies)
    
    # msg='hello world egon'
    # print('egon' in msg)
    
    
    ##pat2===》掌握部分
    hobbies=['play','eat','sleep','study','eat','eat']
    # hobbies.insert(1,'walk')
    # hobbies.insert(1,['walk1','walk2','walk3'])
    # print(hobbies)
    
    # print(hobbies.count('eat'))
    # print(hobbies)
    # hobbies.extend(['walk1','walk2','walk3'])
    # print(hobbies)
    
    hobbies=['play','eat','sleep','study','eat','eat']
    # print(hobbies.index('eat'))
    
    
    #pat3===》了解部分
    hobbies=['play','eat','sleep','study','eat','eat']
    # hobbies.clear()
    # print(hobbies)
    
    # l=hobbies.copy()
    # print(l)
    
    # l=[1,2,3,4,5]
    # l.reverse()
    # print(l)
    
    l=[100,9,-2,11,32]
    l.sort(reverse=True)
    print(l)
    View Code

    三.元组

    作用:存多个值,对比列表来说,元组不可变,主要是用来读

      定义:与列表类型,只不过[]换成()

        可以当做字典的key

        age=(11,22,33,44,55)本质age=tuple((11,22,33,44,55))

      常用操作:

        索引

        切片

        循环

        长度

        包含in

    #为何要有元组,存放多个值,元组不可变,更多的是用来做查询
    t=(1,[1,3],'sss',(1,2)) #t=tuple((1,[1,3],'sss',(1,2)))
    # print(type(t))
    
    
    # #元组可以作为字典的key
    # d={(1,2,3):'egon'}
    # print(d,type(d),d[(1,2,3)])
    
    
    
    #  索引
    #
    #     切片
    # goods=('iphone','lenovo','sanxing','suoyi')
    # print(goods[1:3])
    
    
    #
    #     长度
    #
    #in:
    #字符串:子字符串
    #列表:元素
    #元组:元素
    #字典:key
    
    # goods=('iphone','lenovo','sanxing','suoyi')
    # print('iphone' in goods)
    
    # d={'a':1,'b':2,'c':3}
    # print('b' in d)
    
    
    
    #掌握
    # goods=('iphone','lenovo','sanxing','suoyi')
    # print(goods.index('iphone'))
    # print(goods.count('iphone'))
    
    
    #补充:元组本身是不可变的,但是内部的元素可以是可变类型
    t=(1,['a','b'],'sss',(1,2)) #t=tuple((1,[1,3],'sss',(1,2)))
    
    # t[1][0]='A'
    # print(t)
    # t[1]='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
    
    
    #元组的元素可以是任意数据类型
    t=('a',1,'b',1,(3,4))
    # print(id(t),type(t),t)
    
    
    
    
    #元组的特性是:不可变
    
    #取值
    # print(t[4][0])
    
    #循环
    t=('a',1,'b',1,(3,4))
    # index=0
    # while index < len(t):
    #     print(t[index])
    #     index+=1
    
    # for i in range(len(t)):
    #     print(t[i])
    
    
    #tuple类型的方法
    # print(t.count(1))
    # print(t.index('b'))
    
    
    #tuple常用操作
    # 索引
    # 切片
    # t=('a',1,'b',1,(3,4))
    # print(t[1:3])
    # print(t)
    # 循环
    # 长度
    # print(len(t))
    # 包含
    #
    # print('a' in t)
    
    
    
    #元组的特性是:不可变,元组的元素可以是任意数据类型
    # t=(1,2,['a','b'])
    # print(id(t),type(t),t)
    
    # t[2][0]='aaaaaaa'
    # print(t)
    # print(id(t),type(t),t)
    
    # t[2]=3
    # t[2][0]=123123123123
    
    
    
    
    #评论
    
    # comments=[('真傻比',),('确实傻逼',)]
    # print(comments)
    # # comments.pop(0)
    # comments[0]='真牛逼'
    # print(comments)
    View Code

    四.字典

    用途:存多个值,这一点与列表相同,值可以是任意数据类型
    特征:每一个值都一个唯一个对应关系,即key,强调一点,key必须是
    不可变类型:字符串,数字,元组,集合
    student_info={
    'age':81,
    'name':'alex',
    'sex':None,
    'hobbies':['zsb0','zsb1','zsb2','zsb30']
    }


    操作:
    查看
    >>> student_info={
    ... 'age':81,
    ... 'name':'alex',
    ... 'sex':None,
    ... 'hobbies':['zsb0','zsb1','zsb2','zsb30']
    ... }
    >>>
    >>> student_info['age']
    81
    >>> student_info['hobbies']
    ['zsb0', 'zsb1', 'zsb2', 'zsb30']
    >>> student_info['hobbies'][2]
    'zsb2'
    增加
    student_info['stu_id']=123456

    删除
    del student_info['stu_id']

    修改
    student_info['name']='alexSB'

    #字典的常用方法
    d={'x':1,}
    
    # d.clear()
    # print(d)
    
    # print(d['x'])
    # print(d['y'])
    # print(d.get('y'))
    # print(d.get('y','找不到的啦'))
    # print(d.get('x','找不到的啦'))
    
    
    d={'x':1,'y':1}
    # print(d.items())
    
    # for item in d.items(): #[('x', 1), ('y', 1)]
    #     print(item)
    
    # for k,v in d.items(): #[('x', 1), ('y', 1)]
    #     print(k,v)
    
    # d={'x':1,'y':1}
    # print(d.keys())
    
    # for i in d.keys():
    #     print(i)
    
    # for i in d:
    #     print(i)
    
    
    
    d={'x':1,'y':1}
    # print(d.keys(),type(d.keys()))
    #
    # res=list(d.keys())
    # print(res,type(res))
    
    d={'x':1,'y':12222}
    # print(d.values())
    # print(list(d.values()))
    # print(list(d.values())[1])
    
    
    # res=d.pop('y')
    # print(res)
    #
    # print(d)
    
    
    # d={'x':1,'y':12222}
    # print(d.pop('z','没有的啦'))
    
    
    #
    # d={'x':1,'y':12222}
    # print(d.popitem())
    # print(d)
    
    # d={'x':1,'y':12222}
    #
    # # d.setdefault('z',3)
    # # print(d)
    #
    # # d['name']='egon'
    # # print(d)
    #
    
    # d={'x':1,'y':12222}
    # print(d.setdefault('x',3333333333333333333333333333))
    # print(d)
    
    
    # d1={}
    # d2=dict()
    # print(d1,d2)
    #
    # d3=dict(x=1,y=2,z=3)
    # print(d3)
    #
    #
    # d4=dict({'x':1,'y':2,'z':3})
    # print(d4)
    #
    #
    #
    # d5=dict([('x',1),('y',2),('z',3)])
    # print(d5)
    #
    #
    # d6={}.fromkeys(['name','age'],None)
    # print(d6)
    #
    # d7={}.fromkeys(['name','age'],['egon',18])
    # print(d7)
    
    
    #
    # d={'name':'alex','sex':'male'}
    #
    # d1={'name':'alexsb','age':50}
    # d.update(d1)
    # print(d)
    
    
    
    
    #新增
    
    d={}
    d['x']=1
    print(d)
    
    # 删除
    # d.pop('x')
    # d.popitem()
    # 键、值、键值对
    # d.keys()
    # d.values()
    # d.items()
    
    # 循环
    
    # 长度
    #
    # d={'x':1,'u':2}
    # print(len(d))
    
    
    # #成员运算
    # d={'x':1,'u':2}
    #
    # print('x' in d)
    # print(1 in d.values())
    View Code
    #字典定义的基本形式:key:value
    # d={'name':'egon','age':18} #d=dict({'name':'egon','age':18})
    #
    # print(id(d),type(d),d)
    #定义字典需要注意的问题:key必须是不可变类型,或者说是可hash类型
    # print(hash(1))
    # print(hash('xxxxxx'))
    # print(hash((1,2,3)))
    
    # print(hash({'a':1}))
    
    d={1:'id','a':1,'b':2,'name':'egon',(1,2):'aaaaaaaa'}
    
    #字典的取值,字典是无序的
    # print(d[1])
    # print(d['name'])
    # print(d[(1,2)])
    
    
    
    
    # d={'name':'alex','age':18}
    # print(d['name'])
    # d['name']='aaaaasb'
    # print(d)
    
    #循环
    d={'name':'alex','age':18,'sex':'male','height':130,'weight':200}
    # print(d.keys())
    # print(d.values())
    # print(type(d.keys()))
    
    # for k in d:
        # print(k,d[k])
    
    
    # l=[1,2,3]
    # for i in l:
    #     print(i)
    
    
    # t=(1,2,3)
    # for i in t:
    #     print(i)
    
    # s='hello'
    # for i in s:
    #     print(i)
    
    '''
    一:可变不可变
        可变:列表,字典
        不可变:数字,字符串,元组
    
    二:存放值的个数
        一个值:数字,字符串
        多个值(容器类型):列表,元组,字典
    
    三:取值方式
        直接取值:数字
        序列类型:字符串,元组,列表
        映射类型:字典
    '''
    
    #字典的嵌套使用
    
    # d={'a':1}
    # print(d['b'])
    # print(d.get('a'))
    
    # user_info=[
    #     {'username':'egon','password':'123'},
    #     {'username':'alex','password':'alex3714'},
    #     {'username':'yuanhao','password':'sb123'},
    # ]
    # for item in user_info:
    #     print(item['username'],item['password'])
    
    
    # tag=True
    # while tag:
    #     user=input('u>>: ')
    #     pwd=input('p>>: ')
    #     for item in user_info:
    #         if user == item['username'] and pwd ==item['password']:
    #             print('login ok')
    #             tag=False
    #             break
    
    
    # user_info=[
    #     {'username':'egon','password':'123'},
    #     {'username':'alex','password':'alex3714'},
    #     {'username':'yuanhao','password':'sb123'},
    # ]
    
    user_dic={
        'egon':'123',
        'alex':'alex3714',
        'yuanhao':'sb123'
    }
    # print('egon' in user_dic)
    while True:
        user=input('u>>: ')
        pwd=input('p>>: ')
        if user in user_dic:
            if pwd == user_dic[user]:
                print('login ok')
                break
    
    
    
    
        # if user == 'egon' and pwd == '123':
        #     print('login ok')
        #     break
    View Code

     练习

      1 有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。(2分)

      即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

    a={'k1':[],'k2':[]}
    c=[11,22,33,44,55,66,77,88,99,90]
    for i in c:
        if i>66:
            a['k1'].append(i)
        else:
            a['k2'].append(i)
    print(a)
    View Code

    2 统计s='hello alex alex say hello sb sb'中每个单词的个数

      结果如:{'hello': 2, 'alex': 2, 'say': 1, 'sb': 2}

    s='hello alex alex say hello sb sb'
    
    l=s.split()
    dic={}
    for item in l:
        if item in dic:
            dic[item]+=1
        else:
            dic[item]=1
    print(dic)
    View Code
    s='hello alex alex say hello sb sb'
    dic={}
    words=s.split()
    print(words)
    for word in words: #word='alex'
        dic[word]=s.count(word)
        print(dic)
    
    
    #利用setdefault解决重复赋值
    '''
    setdefault的功能
    1:key存在,则不赋值,key不存在则设置默认值
    2:key存在,返回的是key对应的已有的值,key不存在,返回的则是要设置的默认值
    d={}
    print(d.setdefault('a',1)) #返回1
    
    d={'a':2222}
    print(d.setdefault('a',1)) #返回2222
    '''
    s='hello alex alex say hello sb sb'
    dic={}
    words=s.split()
    for word in words: #word='alex'
        dic.setdefault(word,s.count(word))
        print(dic)
    
    
    
    #利用集合,去掉重复,减少循环次数
    s='hello alex alex say hello sb sb'
    dic={}
    words=s.split()
    words_set=set(words)
    for word in words_set:
        dic[word]=s.count(word)
        print(dic)
    其他做法(重点看setdefault的用法)

    五.集合

    作用:去重,关系运算,

    知识点回顾

    可变类型是不可hash类型 不可变类型是可hash类型

    定义集合:

    集合:可以包含多个元素,用逗号分割,

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

    1:每个元素必须是不可变类型(可hash,可作为字典的key)

    2:没有重复的元素

    3:无序 注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

    常用方法:

        in 和 not in

        |合集

        &交集

        -差集

        ^对称差集

        ==

        >,>= ,<,<= 父集,子集

      练习:

      一.关系运算
      有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
      pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
      linuxs={'wupeiqi','oldboy','gangdan'}
      1. 求出即报名python又报名linux课程的学员名字集合
      2. 求出所有报名的学生名字集合
      3. 求出只报名python课程的学员名字
      4. 求出没有同时这两门课程的学员名字集合

    # 有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
    pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
    linuxs={'wupeiqi','oldboy','gangdan'}
    # 求出即报名python又报名linux课程的学员名字集合
    print(pythons & linuxs)
    # 求出所有报名的学生名字集合
    print(pythons | linuxs)
    # 求出只报名python课程的学员名字
    print(pythons - linuxs)
    # 求出没有同时这两门课程的学员名字集合
    print(pythons ^ linuxs)
    View Code

    二.去重

       1. 有列表l=['a','b',1,'a','a'],列表元素均为可hash类型,去重,得到新列表,且新列表无需保持列表原来的顺序

       2.在上题的基础上,保存列表原来的顺序

       3.去除文件中重复的行,肯定要保持文件内容的顺序不变
       4.有如下列表,列表元素为不可hash类型,去重,得到新列表,且新列表一定要保持列表原来的顺序

    l=[
    {'name':'egon','age':18,'sex':'male'},
    {'name':'alex','age':73,'sex':'male'},
    {'name':'egon','age':20,'sex':'female'},
    {'name':'egon','age':18,'sex':'male'},
    {'name':'egon','age':18,'sex':'male'},
    ]
    #去重,无需保持原来的顺序
    l=['a','b',1,'a','a']
    print(set(l))
    
    #去重,并保持原来的顺序
    #方法一:不用集合
    l=[1,'a','b',1,'a']
    
    l1=[]
    for i in l:
        if i not in l1:
            l1.append(i)
    print(l1)
    #方法二:借助集合
    l1=[]
    s=set()
    for i in l:
        if i not in s:
            s.add(i)
            l1.append(i)
    
    print(l1)
    
    
    #同上方法二,去除文件中重复的行
    import os
    with open('db.txt','r',encoding='utf-8') as read_f,
            open('.db.txt.swap','w',encoding='utf-8') as write_f:
        s=set()
        for line in read_f:
            if line not in s:
                s.add(line)
                write_f.write(line)
    os.remove('db.txt')
    os.rename('.db.txt.swap','db.txt')
    
    #列表中元素为可变类型时,去重,并且保持原来顺序
    l=[
        {'name':'egon','age':18,'sex':'male'},
        {'name':'alex','age':73,'sex':'male'},
        {'name':'egon','age':20,'sex':'female'},
        {'name':'egon','age':18,'sex':'male'},
        {'name':'egon','age':18,'sex':'male'},
    ]
    # print(set(l)) #报错:unhashable type: 'dict'
    s=set()
    l1=[]
    for item in l:
        val=(item['name'],item['age'],item['sex'])
        if val not in s:
            s.add(val)
            l1.append(item)
    
    print(l1)
    
    
    
    
    
    
    #定义函数,既可以针对可以hash类型又可以针对不可hash类型
    def func(items,key=None):
        s=set()
        for item in items:
            val=item if key is None else key(item)
            if val not in s:
                s.add(val)
                yield item
    
    print(list(func(l,key=lambda dic:(dic['name'],dic['age'],dic['sex']))))
    View Code
  • 相关阅读:
    小程序底部弹出式导航菜单
    Markdown-it-latex2img
    Typography convention
    排版规约
    Java String的相关性质分析
    switch表达式中可以用哪些类型
    break,continue和return的区别
    一个.java文件中有多少个类(不是内部类)?
    RabbitMQ启动配置中出现(ArgumentError) argument error xxx的错误
    问题:IDEA部署Springboot项目的时候,提示很多xxx程序包找不到
  • 原文地址:https://www.cnblogs.com/huchong/p/7225302.html
Copyright © 2011-2022 走看看