美文网首页
07-Python笔记整理(字典元组集合)

07-Python笔记整理(字典元组集合)

作者: 李小萌mmm | 来源:发表于2018-07-23 20:02 被阅读0次

    字典

    可变的(可以增删改),无序的(不能使用下标),有限的,键不重复的对象集合
    存的数据是以键值对的形式出现的

    除了列表以外,字典也许是Python之中最灵活的内置数据结构类型,

    如果把列表看做是有序的对象集合,那么就可以把字典当成是无序的集合。

    它们主要的差别在于:字典当中的元素是通过键来存取的,
    而不是通过偏移存取。对字典进行索引是非常快速的搜索操作,
    Python采用最优化的散列算法来寻找键,因此使用键查找的速度非常快。

    键值对:(key:value):

    key是形式,value才是真正要存的内容

    key理论上可以是任何不可变的数据类型,但是一般使用字符串

    value可以是任何数据类型

    1.创建一个字典

    dict1 = {'1':1,'abc':2}

    2.将其他类型转换成字典

    dict3 =dict(([1,2],[2,3]))

    dict4 =dict([(1,2),(2,3)])

    3.查找字典元素(两种方法)

    person ={'name':'路飞','age':17,'face':90}

    第一种.如果key值不存在,会报KeyError

    print(person['name'])

    第二种.如果key值不存在,会返回None

    print(person.get('name'))
    print(person.get('aaa'))
    注意:如果key值确定存在,使用[]的语法,不确定得话使用get()方法

    4.增加、修改 字典元素

    通过key获得字典元素,然后赋值,当key存在的时候,就是修改值
    不存在的时候增加值
    person = {'height':1.8}

    person['height'] = 1.7

    person['age'] = 28

    5.删除字典

    1.del dict[key]删除的键必须存在不然会报错Keyerror

    del person['age']

    (2).dict.pop(key)

    person.pop('height')

    6.相关的数组属性

    dict.keys():获得字典所有的key,返回的是dict_keys,但是可以把它当成列表使用
    dict.values():获得字典所有的值
    dict.items():将字典所有的键值对转换成一个一个元组,key作为第一个元素,value作为第二个元素

    student_dict = {'name':'小梦' , 'student_id':'py1805','scores':{'english':100, 'chinses':60}}
    print(student_dict.keys())
    
    dict_keys(['name', 'student_id', 'scores'])
    

    7.遍历字典

    for key in student_dict:
    print(key,student_dict[key])

    for key in student_dict.keys():
    print(key,student_dict[key])

    不推荐使用 ,对CPU消耗较大

    for k,v in student_dict.items():
    print(k,v)
    for v in student_dict.values():
    print(v)

    8.列表中有字典,字典中有字典,字典中有列表

    student_data =[{'student1':'小明','sex1':'male','age1':'18','phone1':12345678},
                   {'student2':'小红','sex2':'female','age2':'19','phone2':1234576789},
    
    ]
    
    student_data1 ={'student1':{'name':'小李','age':18},
                    'student2':{'name':'小梦','age':20}
                    }
    

    9.dict.fromkeys(序列,value)序列中的元素作为key,value作为值

    new_dict =dict.fromkeys(['abc','123','lll'],100)
    print(new_dict)
    
    {'abc': 100, '123': 100, 'lll': 100}
    

    10.in

    obj in 字典,判断字典中是否有存在的key

    11.update

    dict1.update(dict2):使用字典2的键值对更新字典1的键值对
    如果字典2中对应的键值对在字典1中不存在就添加,存在就更新

    dict1 = {1:'a','2':'b'}
    dict2 = {1:'b','3':'ccc'}
    dict1.update(dict2)
    print(dict1)
    
    {1: 'b', '2': 'b', '3': 'ccc'}
    

    和list比较,dict有以下几个特点:

    查找和插入的速度极快,不会随着key的增加而变慢;
    需要占用大量的内存,内存浪费多。
    而list相反:
    查找和插入的时间随着元素的增加而增加;
    占用空间小,浪费内存很少。
    所以,dict是用空间来换取时间的一种方法。


    元组

    元组是不可变的列表,列表中除了可变的操作外,其他操作都适用于元组
    元组值:使用小括号()
    增删改不能用于元组

    方法

    len

    in ,not in

    + , *


    集合

    集合也是一种容器类型的数据类型(序列):数据放在{ }中,多个之间用逗号隔开列如:{1,2,'a'}
    集合是无序的,可变的,元素不能重复
    集合可以进行数学中集合相关的操作:判断是否包含交集,并集,差集,补集

    1.怎么创建一个集合

    set1 ={1,2,3,3,21}
    print(set1,type(set1))
    
    {1, 2, 3, 21} <class 'set'>
    

    2.将其他数据转换成集合,自带一个去重的功能

    set2 = set('abc1233312')
    print(set2)
    
    {'c', '1', 'b', '3', 'a', '2'}
    

    3.增删改查

    查:通过遍历
    注意集合没有办法单独获得某一个元素

    set1 ={1,2,3,3,21}
    for item in set1:
        print(item)
    1
    2
    3
    21
    

    1.

    set1.add():在指定集合中添加指定的元素
    set1.add(100)

    2.

    set1.update(set2):将集合2的元素添加到集合1中,自动去重

    set1 ={1,2,3,3,21}
    set1.update({'abc','123'})
    {'123', 1, 2, 3, 21, 'abc'}
    print(set1)
    

    1.

    remove
    set1.remove(元素):在指定的集合中删除指定的元素

    2.

    pop
    set1.pop():随机删除一个

    3.

    set.clear():清空集合

    4.判断是否包含

    集合1 >= 集合2 --判断集合1中是否包含集合2
    集合2 <= 集合1 -- 判断几何2中是否包含集合1

    print({1,2,3,4} >={1,4})
    print({1,2,3,4}<={1,4})
    
    True
    False
    

    5.集合的数学运算

    求并集: |
    print({1,2,3} | {2,3,4,5})
    求交集 &
    print({1,2,3}&{2,3,4,5})
    求差集 -
    print({1,2,3}-{2,3,4,5})
    求补集:^
    print({1,2,3}^{2,3,4,5})
    
    {1, 2, 3, 4, 5}
    {2, 3}
    {1}
    {1, 4, 5}
    

    容器(列表,元组,集合,字典)前面加可以将容器里面的元素全部取出*

    相关文章

      网友评论

          本文标题:07-Python笔记整理(字典元组集合)

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