zoukankan      html  css  js  c++  java
  • python数据类型之字典(dict)和其常用方法

    字典的特征:

    key-value结构
    key必须可hash,且必须为不可变数据类型、必须唯一。 # hash值都是数字,可以用类似于2分法(但比2分法厉害的多的方法)找。
    可存放任意多个值、可修改、可以不唯一
    无序
    查找速度快

    常用方法:

    info = {'stu01': 'alex', 'stu02': 'jack', 'stu03': 'jucy'}
    # 关键字:info.keys(),值:info.values()
    print('stu01' in info)  # True
    print(info['stu01'])  # alex 没有会报错
    print(info.get('stu01'))  # alex  没有不会报错,而是返回None,一般用这个
    print(info.pop('stu03'))  # jucy 删除,返回删除的值
    # info.popitem()  随机删
    # del info['stu01']  删除方法,全局删除
    
    # copy和list的一模一样
    # 可多嵌套
    
    print(info.items())  # 把字典转成列表。dict_items([('stu01', 'alex'), ('stu02', 'jack')])
    info2 = {1: 2, 'stu02': [22, 1893113111, '']}
    info.update(info2)  # 更新和list的extends类似,有对应的值就覆盖,没有对应的值就创建。
    print(info)  # {'stu01': 'alex', 'stu02': [22, 1893113111, '男'], 1: 2}
    
    info.setdefault(2, 'a')  # 如果有2这个值就什么都不做,如果没有就把2的值写成'a'
    print(info)  # {'stu01': 'alex', 'stu02': [22, 1893113111, '男'], 1: 2, 2: 'a'}
    
    seq = ('Google', 'Runoob', 'Taobao')
    dict = dict.fromkeys(seq)
    print("新字典为 : %s" % str(dict))  # 字典为 : {'Google': None, 'Runoob': None, 'Taobao': None}
    dict = dict.fromkeys(seq, 10)
    print("新字典为 : %s" % str(dict))  # 新字典为 : {'Google': 10, 'Runoob': 10, 'Taobao': 10}
    
    # 打印出key和value
    for k in info:
        print(k, info[k])
    
    # 下面这个方法不建议用,低效,需要把字典转换成列表,而字典的查询速度特别快
    for k, v in info.items():
        print(k, v)

  • 相关阅读:
    SpringBoot打包的程序部署到服务器后一直在后台运行
    ubuntu搭建mysql数据库
    解决ubuntu16.04 ‘E: 无法获得锁 /var/lib/dpkg/lock-frontend
    项目部署篇之——下载安装Xftp6,Xshell6
    linux 文件 chgrp、chown、chmod
    linux 正确的关机方法
    linux 常用命令
    spring 事务
    Spring 中 ApplicationContext 和 BeanFactory 的区别
    java 异常处理
  • 原文地址:https://www.cnblogs.com/lshedward/p/9919445.html
Copyright © 2011-2022 走看看