ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第八天-字典

2021-12-08 19:32:48  阅读:126  来源: 互联网

标签:name 第八天 age stu 键值 print 字典


第八天-字典

一、认识字典(dict)

  1. 字典是容器型数据类型(序列);将{}作为容器的标志,里面的键值对用逗号隔开
    {键1:值1,键2:值2,·······}
    容器的特点:
    1)字典是可变的——支持增删改
    2)无序——不支持下标
    3)对元素的要求——键值对
    键的要求:任何不可变类型的数据,一般使用字符串;键唯一;对值没有要求

二、字典的增删改

  1. 查——查的目的是获取对应键后大的值。

    1)字典[键]——获取指定键对应的值
    2)在不确定字典中是否有想要的键的时候使用
    字典.get(键)
    字典.get(键,默认值)

    stu={'name':'大海','age':22,'gender':'男','tsl':'12346'}
    print(stu['age'])
    print(stu.get('age'))
    
  2. 字典[键]=值——如果原字典中有指定键则改,如果没有则增加。

    stu={'name':'大海','age':22,'gender':'男','tsl':'12346'}
    stu['name']='小海'
    stu['h'] = 175
    print(stu)
    
  3. 字典.setdefault()——单纯的添加,如果原字典中有这个键则不修改。

    students = [
        {'name':'大海','age':2,'gender':'男','tsl':'12346','score':90},
        {'name':'大河','age':12,'gender':'女','tsl':'12346','score':65},
        {'name':'大江','age':25,'gender':'女','tsl':'12346'},
        {'name':'大湖','age':30,'gender':'男','tsl':'12346','score':63}
    ]
    for i in students:
        i.setdefault('score',0)
    print(students)
    
  4. 删——删除键值对

    del 字典[键]——删除指定键值对

    字典.pop(键)——取出指定键值对的值

三、字典的相关应用

  1. 运算符

    相关列表,字典不支持:+,*,比较大小

  2. 相关函数

    dict(数据)
    数据的要求:
    1)这个数据必须是一个数列
    2)序列中元素必须是有且中有两个元素的小序列,
    两个元素中第一个元素是不可变的数据

  3. 相关方法

    1)字典.clear ——清空字典

    2)字典.copy——赋值产生一个一模一样的新字典

    3)返回值

    ​ 字典.values()——返回所有的值

    ​ 字典.keys()——返回所有的键

    ​ 字典.items()——返回所有的键值对

    dog ={'name':'阿财','age':2,'color':'黑','breed':'哈'}
    print(dog.values())
    print(dog.keys())
    print(dog.items())
    

    4)练习:用列表推导式交换字典的键和值

    dict1 = {10: 20, 'a': 'b', 'c': 30}
    new_dict1 = dict([(j,i) for i , j in dict1.items()])
    print(new_dict1)
    

    ​ 5)字典.update(字典2)——将字典2中所有键值对添加到字典1

标签:name,第八天,age,stu,键值,print,字典
来源: https://blog.csdn.net/qq_56664754/article/details/121798942

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有