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)))
  • 相关阅读:
    web前端学习笔记(CSS盒子的定位)
    web前端学习笔记(CSS盒子的浮动)
    数百篇「原创」文章,助你完成技术「体系化」
    linux quota磁盘限额,引发的rename系统调用 errno:18
    dnsperf
    stop容器,把信号量传给java进程,优雅退出
    JNA 调用操作系统函数 和 系统调用
    自顶向下深入分析Netty(五)--Future
    来测试下你的Java编程能力
    Netty笔记
  • 原文地址:https://www.cnblogs.com/candysalty/p/10944039.html
Copyright © 2011-2022 走看看