zoukankan      html  css  js  c++  java
  • Python字典 day2

    一、字典

    1、字典的特点:

            一系列键-值对(key-value),字典用放在花括号{ }中的一系列键值对表示;

            字典中有多个元素时需要用逗号,隔开;

            key不能重复;

            字典是无序的。

     字典的优点:字典取值方便,速度快,比列表取值快,不需要像列表一样一个一个找。

    2、字典的方法:

    已存在的字典:
    info = { "name":"andy", "color":"red", "city":"beijing" }

    (1)增加

    方法有二:

    【1】向字典info中增加一个新的key:height

    info['height']=160

    【2】向字典info中增加一个新的key:sex

    info.setdefault('sex','male')

    如上两种方法在新增不存在的键时没有区别,但要是增加已存在的键,则不同:

    若使用方法【1】可修改原存在的键对应的值;

    若使用方法【2】则不会修改原存在的键对应的值;

    (2)删除

    方法有二:

    【1】pop方法

    info.pop('sex')

    【2】del方法

    del info['sex']

    随机删除一个元素方法不常用,info.popitem()

    (3)修改

    同新增的【1】方法

    info['height']=160

    (4)取值

    【1】输入键取对应的值

    print(info['color'])

    【2】使用get取值

    print(info.get('color'))

    如上两种方法都可以取已存在的key,若取字典里不存在的key,则不同:

    【1】会报错

    【2】返回None    (使用此方法可设置取不到值时,传入默认值,方法为info.get('color','red'))

    >获取字典里所有的key

    print(info.keys())

    >获取字典里所有的value

    print(info.values())

     (5)清空

    info.clear()

    (6)update与list中的extend类似,如下为将stu字典加入到info字典中

    stu ={
        'stu_id':'123456',
        'stu_no':'no.1'      
    }
    info.update(stu)
    print(info)

     3、多层字典取值

    stu_info  = {
        'liudonghai':{
            'house':['三环','四环','五环'],
            'car':{
                'china':['byd','五菱宏光','Hongqi'],
                'jap':['丰田','本田'],
                'Germany':{
                    'ben-z':2,
                    'bmw':3,
                    'audi':5
                }
            }
        }
    }
    
    #1、刘东海又买了一辆宝马
    stu_info['liudonghai']['car']['Germany']['bmw']+=1
    print(stu_info['liudonghai']['car']['Germany']['bmw'])
    #2、刘东海不要byd和红旗了
    stu_info['liudonghai']['car']['china'].remove('byd')
    print(stu_info['liudonghai']['car']['china'])
    stu_info['liudonghai']['car']['china'].pop(-1)
    print(stu_info)

    4、循环字典:

    accounts = {
        "liuzhao":"123456",
        "liudonghai":"123456",
        "zhaowenming":"3154325345",
        "xiaoming":"34523434"
    }
    for k in accounts: #直接循环字典每次循环的时候取到的是字典的key
        print("%s => %s"%(k,accounts[k])) #同时取到key和value--方法1
    for k,v in accounts.items():  #同时取到key和value--方法2,没有上面的方法1效率高
        print("%s => %s"%(k,v))
    
    
    l  = ['liuzhao', 'liudonghai', 'zhaowenming', 'xiaoming', 'users']
    s = '34125345235355ssssss'
    for i in l: #循环list,循环list里的每一个元素
        print(i)
    
    for j in s: #循环字符串,循环字符串里的每一个元素
        print(j)
    
    print(list(range(5)))
    print(list(range(1,5)))
  • 相关阅读:
    Android Gradle Plugin指南(五)——Build Variants(构建变种版本号)
    文件内容操作篇clearerr fclose fdopen feof fflush fgetc fgets fileno fopen fputc fputs fread freopen fseek ftell fwrite getc getchar gets
    文件操作篇 close creat dup dup2 fcntl flock fsync lseek mkstemp open read sync write
    嵌入式linux应用程序调试方法
    version control system:git/hg/subversion/cvs/clearcase/vss。software configruation management。代码集成CI:Cruisecontrol/hudson/buildbot
    最值得你所关注的10个C语言开源项目
    如何记录linux终端下的操作日志
    CentOS 5.5 虚拟机安装 VirtualBox 客户端增强功能
    sizeof, strlen区别
    C/C++嵌入式开发面试题
  • 原文地址:https://www.cnblogs.com/candysalty/p/10944039.html
Copyright © 2011-2022 走看看