美文网首页
Python基础总结-07(元组、字典、集合)

Python基础总结-07(元组、字典、集合)

作者: zxhlcl | 来源:发表于2018-10-09 15:25 被阅读0次

    一、元组(tuple)

    什么是元组?元组是一种容器,可以同时存储多个数据,不可变,有序
    不可变--不可以增删改
    有序--可通过下标获取元素

    注意:元组中的元素可以是任何类型的数据
    (1)一旦创建,没有任何方法可以修改元组中的元素,只能使用del命令删除整个元组。
    (2)Python内部实现对元组做了大量优化,访问和处理速度比列表快。
    (3)调用函数时使用元组传递参数可以防止在函数中修改元组,使代码更安全。
    (4)元组可用作字典的键,而列表则永远都不能当做字典键使用。
    元组的创建

    tuple1=(1,2,3,4,[1,2,3],'字符串')
    tuple2=(100,)
    tuple3=1,2,3,"123","字符串",[1,2,3] #若多个数据直接用逗号隔开,表示一个元组
    print(tuple1,tuple2,tuple3)
    

    元素获取
    元组不支持增删改
    列表获取元素的方式,元组都支持

    tuple3=1,2,3,"123","字符串",[1,2,3]
    print(tuple3[4])
    

    获取部分元素:
    可以通过相同的变量个数,来一一获取元组中的元素

    x,y,z=1,2,3 #x,y,z指向新建的元组
    print(x,y,z)
    x,y,z=z,x,y #z,x,y创建了一个新的元组,x,y,z指向该元组
    print(x,y,z)
    

    在元组中使用*号
    1、可以通过在变量前加获取部分元素,返回值是一个列表
    2、可以通过在元组前面加
    ,展开元组,获取里面的所有元素
    适用于列表

    tuple4='xiaoming',90,89,85,95,'male','13555899752'
    name,*score,sex,tel=tuple4
    print(name,score,sex,tel)
    print(*tuple4)
    

    元组的基本操作
    +,*,len(),max(),min(),in,not in,迭代,tuple()

    二、字典(dict)

    字典是一个容器,可以存储多个数据,以键值对的形式存储
    可变--可以增删改
    无序--不能通过下标获取值

    key--用来定位值的,要求只能是不可变的数据类型(数字、字符串、元组等)
    value--存储的数据,可以是任何类型的数据
    1、创建字典,获取元素

    student={'name':'小明','age':30,'stuID':20180801,'sex':'boy'}
    print(student['name'],student['age'])
    print(student.get('name'),student.get('age'))
    

    2、字典的增删改查
    查询
    1、通过Key获取(没有key会报错)
    2、通过get获取
    3、遍历字典:
    (1)通过for-in语句拿到key,通过key获取对应的值(推荐使用)
    (2)直接拿到值 for value in dict.value(不推荐使用,耗内存)
    (3)同时拿到键值对for key,value in dict.items(不推荐使用,耗内存)

    student={'name':'小明','age':30,'stuID':20180801,'sex':'boy'}
    for x in student:
        print(x,end=' ')
    print()
    for x in student.values():
        print(x,end='  ')
    print()
    for k,v in student.items():
        print(k,v,end=',')
    print()
    

    增加:dict[key]=value(key不存在)
    修改:dict[key]=value(key存在)
    删除:删除键值对
       del dict[key] --通过key删除
       pop(key)--取出key对应的键值对

    car={}
    car['color']='red';car['wheel']=4;car['name']='benz'
    print(car)
    car["color"]='blue'
    print(car)
    del car["wheel"]
    print(car)
    car.pop('color')
    print(car)
    

    3、字典相关运算
    判断:
    (1)==和is,==判断字典的值是否相等,is判断字典的地址是否相等
    (2)in和not in,判断key是否存在
    4、字典相关方法
    radiansdict.clear()--删除字典内所有元素
    radiansdict.copy()--返回一个字典的浅复制
    radiansdict.fromkeys(seq,value)--创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
    radiansdict.get(key, default=None)--返回指定键的值,如果值不在字典中返回default值
    radiansdict.items()--将键值对转成元组,作为序列的元素并返回
    radiansdict.keys()--返回一个迭代器,可以使用 list() 来转换为列表
    radiansdict.values()--返回一个迭代器,可以使用 list() 来转换为列表
    radiansdict.setdefault(key, default=None)--和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default,若key存在就不会修改字典的值
    radiansdict.update(dict2)--把字典dict2的键/值对更新到dict里(原始字典存在的key对应值进行修改)
    pop(key[,default])--删除字典给定键 key 所对应的值,返回值为被删除的值,key值必须给出; 否则,返回default值
    popitem()--随机返回并删除字典中的一对键和值(一般删除末尾对)

    student={'name':'小明','age':30,'stuID':20180801,'sex':'boye'}
    student_copy=student.copy()
    print(student_copy)
    student.clear()
    print(student)
    temp=student.fromkeys([1,2,3],'小明')
    print(temp)
    a=student_copy.get('name')
    b=student_copy.get('weight',70)
    print(a,b)
    stu_items=student_copy.items()
    stu_keys=student_copy.keys()
    stu_values=student_copy.values()
    print(stu_items,stu_keys,stu_values)
    print(type(stu_items),type(stu_keys),type(stu_values))
    student_copy.setdefault('addr','成都市科华北路')
    print(student_copy)
    tempdict={'addr':"成都市科华北路168号","score":[90,93,96]}
    student_copy.update(tempdict)
    print(student_copy)
    

    三、集合(set)

    什么是集合?集合是一种容器,可以同时存储多个数据,可变,无序,唯一
    可变--可以增删改查(集合可变,集合中的元素不可变)
    无序--不能使用下标获取元素
    唯一--自动排除重复的元素
    集合的元素只能是不可变的数据
    1、创建集合

    set1={10,20,'abc',(10,20,30)}
    

    2、集合的增删改查
    获取元素:集合不能单独获取一个元素,也不能切片,只能通过for-in遍历
    增加元素:
        (1)add--在集合中添加一个元素
        (2)update--将序列中的元素添加到集合1
    删除元素:
        (1)remove--若集合中没有该元素,会报错
        (2)discard--若集合中没有该元素,不会报错
    修改元素:集合中的元素不可修改

    set1={10,20,'abc',(10,20,30)}
    for x in set1:
        print( x , end=',')
    set1.add((1,2,3))
    print(set1)
    set1.update({'abc','bcd'})
    set1.update({'name':'xiaoming','age':20}) #添加key
    print(set1)
    set1.discard(20)
    set1.remove(10)
    print(set1)
    

    3、集合相关的数学运算
    1、包含关系:<=,>= 返回值为布尔类型
    2、交集:set1 & set2
    3、并集:set1 | set2
    4、差集:set1 - set2
    5、补集:set1 ^ set2

    set1={1,2,3,4}
    set2={1,2,3,4,5}
    print(set2>=set1)
    set1={1,3,5,7,9,11,13}
    set2={1,2,3,4,5,6,7,8,9}
    print(set1&set2,set1|set2,set1-set2,set1 ^ set2)
    

    4、集合相关方法

    set1={8,9,10,11,12,13}
    set2={5,6,7,8,9,10}
    set3={1,3,5,7,9,10,11,12,13,15}
    set4={2,4,6,8,10,12}
    #还有issuperset(), issubset函数判断子集和父集
    a=set3.difference(set2,set1) #返回差集
    temp=set3.copy() 
    temp.difference_update(set2,set1)#用差集更新原来的集合
    b=set1.intersection(set2,set4) #交集
    c=set1.isdisjoint(set2) #是否包含相同的元素
    d=set1.symmetric_difference(set2) #补集
    e=set1.union(set2) #并集
    print(a,temp,b,c,d,e)
    
    

    四、类型转换

    1、整型
    int(x [,base])--可以转换的包括String类型和其他数字类型,但是会丢失精度
    2、浮点数
    float(x)--可以转换String和其他数字类型,不足的位数用0补齐
    3、布尔型
    bool()--所有数据可以转成布尔类型
    为空为零的值转换成布尔类型为False,其余的为True
    作用:多用于条件判断语句
    4、字符串
    str( )--所有数据类型都可以转成字符串
    5、列表
    list()--将序列转变成一个列表,参数可为字符串、元组、字典、列表,为字典时,返回字典的key组成的列表
    6、元组
    tuple()--参数可以是元组、列表或者字典;参数是字典时,返回字典的key组成的元组
    7、字典
    dict()--序列的每个元素都包含两个元素的才能转换成字典

    #整型
    print(int('123'),int('0b101010',2),int('0o77',8),int('0x11',16))
    #浮点型
    print(float(123),float("123"),float('123.123'))
    #布尔型
    print(bool(''),bool([]),bool(0),bool({}),bool(None),bool(()))
    num=100
    if num % 2:print("是奇数") #将条件语句的结果转换成bool类型
    else:print("是偶数")
    #字符串
    print(str(123),str([1,2]),str((1,2)),str({'1':1,'2':2}))
    #列表
    print(list('123'),list((1,2,3)),list(range(1,6)),list({'name':'xiaoming','age':20}))
    #元组
    print(tuple('123'),tuple([1,2,3]),tuple(range(1,6)),tuple({'name':'xiaoming','age':20}))
    #字典
    A=((1,2),(2,4),(3,6))
    B=[[1,2],[2,3],[3,4]]
    print(dict(A),dict(B))
    

    相关文章

      网友评论

          本文标题:Python基础总结-07(元组、字典、集合)

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