美文网首页
python数据类型-集合/字典

python数据类型-集合/字典

作者: Python野路子 | 来源:发表于2017-12-12 23:26 被阅读0次

    集合 set 无序性 唯一性(不重复)可变

    创建:

    se=set() #注意:创建空的集合要用set(),se={} 创建的字典
    se = set('abc') =》{'a', 'b', 'c'} #参数是需要可迭代对象
    se = set([1,2]) =》{1, 2} # 可以理解列表为转换为集合set
    se =set((1,2)) =>{1, 2}
    se ={1,2,2,3} ==>>{1, 2, 3} #注意唯一性
    se = {1,[2,3]} #error 不能是可变类型,违背唯一性,可以是字符串或者元组
    se = set([1,[2,3]]) #error
    se = set([1,'abc']) => {1, 'abc'}
    se = set([1,(2,3)]) =>{1, (2, 3)}

    集合的运算

    se1 = {1,2,3,4}
    se2 = {3,4,5,6}

    并集

    se1 | se2 => {1, 2, 3, 4, 5, 6} #去重,将2个集合合并


    image.png

    交集

    se1 & se2 => {3, 4} #取2个集合重复的部分


    image.png

    差集

    se1 - se2 => {1, 2} #前一个集合去除2集合中重复的部分
    se2 - se1 => {5, 6}


    image.png

    与非集

    se1^se2 => {1, 2, 5, 6} #取2集合各自独有部分合在一起


    image.png

    集合set的常用方法

    se1.add('abc') =>{1, (2, 3), 'abc'} #不可变,字符串,元组都可以作为参数
    se1.add([1,2]) #error ,不能是可变的

    se.clear() #清除集合数据

    se.update() #添加多个元素,注意与上面add方法区别,add作为整体加到集合中,而update则元素迭代加进去;
    se.update([1,2]) => {1, 2}
    se.update('abc') => {1, 2, 'a', 'c', 'b'}
    se.update((3,4)) => {1, 2, 3, 4, 'a', 'c', 'b'}
    se.remove(3) #指定元素值移除
    se.pop() #随机弹出

    集合取值,转成列表

    li = list(se)

    字典 dict key:唯一性,无序性,可变,重复会被重新赋值

    定义

    dic1=dict(name='llp') =》{'name': 'llp'} #name要符合变量命名规则,括号里赋值方式,名字=对象,不要引号
    dic = {'name':'llp','age':18,'sex':'boy'}

    字典取值,修改

    dic['name'] =>'llp' #利用键取对应值
    dic['age']=21 #利用重复会覆盖旧值性达到修改作用;
    dic['school']='hunanxuexiao' #dic[key]=value #key存在则修改值,没有则添加

    字典方法

    di.fromkeys(['a','b','c']) #用给定的键建立新的字典
    dic.get('name') #取值,键存在则返回对应值
    dic.get('school') #如果不存在,默认返回none,可以自定义
    dic.get('school','没有这个属性') =》 '没有这个属性'

    dic.items() #查看字典中的每一项
    dic.keys() #查看字典中的每一个键
    dic.values() #查看字典中每一个值

    可以通过转换为列表list()来获取每一项内容

    dic.pop('school') #指定键弹出对应的值
    dic.popitem() #随机弹出某一项,没内容了还弹就会报错KeyError

    dic.setdefault('a',23) #类似get,如果键存在,返回对应值,不存在则更新
    dic1 = {'a':1,'c':666}
    dic2 = {'a':0,'b':998}
    dic2.update(dic1) => {'a': 1, 'b': 998, 'c': 666} #将一个字典的内容添加到另一个字典,旧的值被覆盖;
    -------------------》》》》》》》------------------------------------》》》》》》》》

    1.有两个列表 x = [1,2,3,'a','b','c'] y = ['a','b','c'] 找出x列表中在y 中也有的元素

    x = [1,2,3,'a','b','c']
    y = ['a','b','c']
    se1 = set(x)
    se2 = set(y)
    print(se1 & se2)

    2.新建一个字典,用3种方法往字典里面插入值;用 4 种方法取出values,用2种方法取出key

    插入值:

    dic = dict(name = 'llp')
    dic['sex'] = 'boy' #有指定的键则修改,没有则增加对应键值
    dic.setdefault('age',18) #
    dic.update({'school':'xuexiao'})

    取出values###

    1.values方法

    lis = list(dic.values())
    print(lis[:])

    2.get方法 取值,键存在则返回对应值,如果不存在,默认返回none,可以自定义

    lis2 = []
    lis2.append(dic.get('name'))
    lis2.append(dic.get('sex'))
    lis2.append(dic.get('age'))
    lis2.append(dic.get('school'))
    print(lis2)

    lis3 = list([dic.get('name'),dic.get('sex'),dic.get('age'),dic.get('school')])
    print(lis3)

    3.setdefault方法 类似get,如果键存在,返回对应值,不存在则更新

    lis4 = list([dic.setdefault('name'),dic.setdefault('sex'),dic.setdefault('age'),dic.setdefault('school')])
    print(lis4)

    4. 利用key

    lis5 = list([dic['name'],dic['sex'],dic['age'],dic['school']])
    print(lis5)

    取出key##

    print(list(dic)) #将字典转换为list,则每个元素就是key
    print(list(dic.keys()))
    list(di.items())[0][0]

    3.定义我们学过的每种数据类型,并且注明,哪些是可变,哪些是不可变的.

    数值类型:int float bool complex

    s=str() #字符串
    lis = list() #列表
    tu =tuple() #元组
    se = set() #集合
    dic = dict() #字典

    可变对象:list set dict,数值类型(int float bool complex)

    不可变对象: str tuple

    相关文章

      网友评论

          本文标题:python数据类型-集合/字典

          本文链接:https://www.haomeiwen.com/subject/askoixtx.html