• python学习之路(五)


    本来说好四号更新的内容被拖到现在。言归正传,今天来介绍一下字典。

    字典是另一种可变容器模型,且可存储任意类型对象。

    字典的每个键值(key=>value)(key的唯一性、key与value的一对多的映射)。key和value用冒号" : "分割,每对键值之间用逗号“  , ”分割,整个字典包括在花括号{}中 ,格式如下所示:

    dic={key1:value1, key2:value2...}

    先写一个字典

    info={
             'stu1001' : "xiaoming" ,
             'stu1002' : "xiaohong" , 
            }    
    

      这就是一个字典,前面的‘stu1001’称作key或者是键。后面的“xiaoming”是这个key的值。

    我们可以直接打印字典print(info)。这个命令打印出来的字典是无序的,它是以key来做区分的。

    如果我们知道了某个值得key 。那我们就可以通过key来调出这个值  print(info["stu1001"])  这个命令运行出来就会得到一个结果  xiaoming

    我们还可以打印所有的键或者值 运用的是 print(info.keys())  或者 print(info.values())

    其实知道了一个值得key是一个分方便的事情,不仅可以随时随地的调用出来,还能直接区修改他 info[“stu1001”]=“小明” 就是这么简单。

    如果我们想在原有字典中增加一组值的话,就可以这样写 info["stu1003"]=“xiaowang”    

    还有一个命令 setdefault,如果键不存在于字典中,将会添加键并将值设为默认值。具体用法如下

    >>> a={}  
    >>> a['key']='123'  
    >>> print (a)  
    {'key': '123'}  
    >>> print ( .setdefault('key','456'))  #显示a这个字典的'key'值的内容,因为字典有,所以不会去设置它  
    123  
      
    >>> print (a.setdefault('key1','456')) #显示a这个字典的'key1'值的内容,因为字典没有,所以设置为456了  
    456  
    >>> a  
    {'key1': '456', 'key': '123'}  
    

      

    删除:可以整个删除也可以按值删除。

    删除整个字典   del info[]  这样,整个字典就被删除了

    删除字典中某个值  del info["stu1003"]  这样,xiaowang这个值和key就一起删除了

    利用pop删除   和之前列表一样  pop命令是删除一个  info.pop("stu1001")

    pop 还有一个功能就是随机删除一个  info.popitem()

    还有一个有关于取值的命令  ,当他想要输出的key 的值存在 ,就输出,如果不存在,也不会报错  info.get("sut1002") 或者 info.get("sut1009")  这个可以print一下看一下结果。

    字典里也可以使用in  print("stu1001" in info )   如果在,打印一个ture  如果不在,打印false

    字典可以拼接 可以讲两个字典拼接起来,但是如果两个字典中有相同的key ,会用一个中的value替代另一个  举个例子 a.update (b)    如果ab中有相同的key 。就是b中的value来代替a中的,如果a中没有b中的key 就会添加key和相应的value。

    字典可以转换为列表,用的是 info.items()

    这里说一下字典的遍历

    for i in info
        print (i, info[i])
    
    for key,value in info.items() 
        print(key,value)
    

     这两种方法都是遍历字典的方法,一种是直接输出key和value  。第二种是将字典先转换为列表再输出。

     从结果上来说两者没什么很大的区别,但是第一种的效率是高于第二种的。因为少了一个转换成列表的过程~

    在字典的指令中,有一个.fromkeys(seq,[ value]))。这是用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值。

    seq = ('name', 'age', 'sex')
    
    dict = dict.fromkeys(seq)
    print("New Dictinary : %s" %  str(dict))
    
    dict = dict.fromkeys(seq, 10)
    print("New Dictinary : %s" %  str(dict))
    
    输出是
    
    New Dictinary : {'age': None, 'name': None, 'sex': None}
    New Dictinary : {'age': 10, 'name': 10, 'sex': 10}
    

    也可以直接写  dict = dict.fromkeys([name,age,sex],"10")这个也是可以的。

    在这里我们要注意一点,就是如果在后面单独改了age 对应的值, name和sex的值也都会随之改变,因为在内存中它们对应的都是一个地址!

  • 相关阅读:
    基于visual Studio2013解决C语言竞赛题之0407最大值最小值
    基于visual Studio2013解决C语言竞赛题之0406数列求和
    基于visual Studio2013解决C语言竞赛题之0405阶乘求和
    基于visual Studio2013解决C语言竞赛题之0404循环求和
    基于visual Studio2013解决C语言竞赛题之0403字符统计
    基于visual Studio2013解决C语言竞赛题之0402奇偶求和
    基于visual Studio2013解决C语言竞赛题之0401阶乘
    当当网首页——html代码
    当当网首页——html代码
    当当网首页——html代码
  • 原文地址:https://www.cnblogs.com/lovelyming/p/6893117.html
Copyright © 2020-2023  润新知