zoukankan      html  css  js  c++  java
  • python基础之字典用法

    一:字典定义

    Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,字典是另 一种可变容器模型,且可存储任意类型对象。具有极快的查找速度。

    字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一內建的映射类型

    字典创建方式

    方式一:
    my_dict = dict(name='小明',age=18,性别='')  #注意键都不要加引号,键只能是字符类型
    
    方式二:
    my_dict = {'name': '小明', 'age': 18, '性别': ''}  #注意字符串类型的键要加引号
    
    方法三:
    my_dict = dict(((1,'小明'),('age',18)))  
    my_dict = dict([(1,'小明'),('age',18)])  
    my_dict = dict(zip(('name','bob'),('age',40))) 

    方法四:dict--fromkeys方法# 如果键的值都相同的话,用这种方式比较好,并可以用fromkeys来初始化
    >>> D5 = dict.fromkeys(['A','B'],0) 
    >>> D5 
    {'A': 0, 'B': 0} 
    或者
    >>> D3 = dict.fromkeys(['A','B']) 
    >>> D3 
    {'A': None, 'B': None} 

    注意:
    每个键与值用冒号隔开(:),每对用逗号,每对用逗号分割,整体放在花括号中({})。
    键必须独一无二,但值则不必。
    值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

    二:字典的用法

    1.字典查询

    my_dict = {'name': '小明', 'age': 18, '性别': ''}
    查询字典的键对应的值:
    方法一:my_dict['name']  #如果键不存在报错KeyError
    方法二:my_dict.get('name')  #如果键不存在返回None(也可以自定义返回值)
    
    查询字典所有的键:
    方法一:my_dict.keys() #返回dict_keys(['name', 'age', '性别'])
    方法二:set(my_dict)  #返回集合{'性别', 'age', 'name'}
    
    查询字典所有的值
    my_dict.values()
    
    查询字典所有的项
    my_dict.items()

    查询字典是否存在某个键
    "age" in my_dict #存在返回True否则返回False

    2.字典的新增和修改

    my_dict = {'name': '小明', 'age': 18, '性别': ''}
    my_dict['班级'] = '3班'  #键不存在则新增键值
    my_dict.update({'班级':"3班"}) #将字典2添加到字典1中
    my_dict['age'] = 20    #键存在修改键对应的值

    3.字典的删除

    my_dict = {'name': '小明', 'age': 18, '性别': ''}
    del my_dict['age']  #删除键是age的项
    my_dict.pop['age'] #删除键是age的项,并返回age项的值
    my_dict.clear() #清空字典的内容 del my_dict #删除字典

    三:字典常用内置方法

    1.fromkeys()  创建一个新字典,fromkeys(*args, **kwargs) 以*args中元素做字典的键,**kwargs为字典所有键对应的初始值

    list_data = ['name', 'age', '性别']
    d = dict.fromkeys(list_data)
    结果:d为{'name': None, 'age': None, '性别': None}
    
    list_data = ['name', 'age', '性别']
    d = dict.fromkeys(list_data,'哈哈')
    结果:d为 {'name': '哈哈', 'age': '哈哈', '性别': '哈哈'}

    2.pop()方法删除指定的key,pop(self, k, d=None)  参数: k:待删除的key    d:如果待删除的key,则返回None ,或指定什么返回什么

    my_dict = {'name': '小明', 'age': 18, '性别': ''}
    p = my_dict.pop('name')  #如果键不存在时报错
    print(p)  #小明
    print(my_dict)   #{'age': 18, '性别': '男'}
    
    p = my_dict.pop('年级','年级未知')  
    print(p)   #年级未知

    3.popitem()方法,返回并删除字典中的最后一对键和值。

    my_dict = {'name': '小明', 'age': 18, '性别': ''}
    p = my_dict.popitem()
    print(p)  #('性别', '男')
    print(my_dict)  #{'name': '小明', 'age': 18}
  • 相关阅读:
    Ubuntu下使用Sysvinit实现自定义服务(简单研究)
    Linux初始化init系统-Sysvinit、Upstart、Systemd
    Ubuntu查看系统版本的方法
    Linux查看文件内容命令:more(转)
    Linux查看文件内容命令:less(转)
    Ubuntu 16.04下MySQL 5.7.18取消开机启动(解决无法使用Sysvinit(update-rc.d/sysv-rc-conf)脚本关闭)
    为什么说Ubuntu的运行级别为2
    Ubuntu 16.04开机进入命令行(tty1)+分辨率调节+字体颜色设置+中文乱码解决(解决虚拟终端Ctrl+Alt+F1分辨率太大)
    Linux运行级别研究(转)
    Linux服务管理(Ubuntu服务管理工具sysv-rc-conf)(转)
  • 原文地址:https://www.cnblogs.com/qqxin/p/11521364.html
Copyright © 2011-2022 走看看