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

    Python 字典是一种可变容器模型,可存储任意类型对象,如字符串、数字、元组等其它容器模型。

    创建一个字典:

    1 >>> di = {1:'jack',2:'tom'}                        #使用{}创建字典
    2 >>> di
    3 {1: 'jack', 2: 'tom'}
    4 >>> di2 = dict(andy=100,bob=78)                      #使用工厂方法dict{}创建字典
    5 >>> di2
    6 {'andy': 100, 'bob': 78}
    7 >>> type(di)                                         #查看对象类型
    8 <class 'dict'>
    9 >>> dir(di2)                                         #查看字典内置的方法。

     字典常用方法:

    clear()方法:删除字典内所有元素。

    1 >>> di = {1:'jack','a':100}
    2 >>> di
    3 {1: 'jack', 'a': 100}
    4 >>> di.clear()              #删除字典里面所有的元素
    5 >>> di                        #查看结果                    
    6 {}
    7 >>> 

    copy()方法:返回一个字典的浅复制。

    1 >>> d1 = dict(a=1,b=2)                   #创建一个字典
    2 >>> d2 = {}                                    #创建一个空字典
    3 >>> d2 = d1.copy()                          #把字典d1的内容复制到字典d2中
    4 >>> d2
    5 {'a': 1, 'b': 2}
    6 >>> 

    fromkeys(iterable, value=None, /)方法:创建一个新的字典,并以可迭代对象中的元素分别作为字典中的键,且所有键对应同一个值,默认为None。里面的参数iterable(可迭代对象)和value都可以使用整型、字符串、列表、元组……

     1 >>> di = {'a':1,'b':2}                                #定义一个字典。
     2 >>> di.fromkeys(['test',3],'python')          #在字典di中创建新的key与value。因为没有使用变量接,所以最终的字典di不会被修改,当前新创建的key是列表['test',3],当前新创建的value是字符串 'python'
     3 {'test': 'python', 3: 'python'}
     4 >>> di                                                 #验证结果不会被修改
     5 {'a': 1, 'b': 2}
     6 >>> 
     7 >>> di = dict(a=1,b=2)                  
     8 >>> di
     9 {'a': 1, 'b': 2}
    10 >>> di = di.fromkeys('qwer',678)                    #使用变量di接住新创建的字典
    11 >>> di                                               #查看结果,之前字典di的内容已经被新建的内容替换。
    12 {'q': 678, 'w': 678, 'e': 678, 'r': 678}
    13 >>> 
    14 >>> a = 'qwer'                                      #定义一个字符串,变量名为a
    15 >>> di = {}
    16 >>> di
    17 {}
    18 >>> di = di.fromkeys(a,'python')                    #新建字典的可迭代对象直接使用变量名a
    19 >>> di
    20 {'q': 'python', 'w': 'python', 'e': 'python', 'r': 'python'}
    21 >>> 
    22 >>> a = ['q','w','e','r']                           #定义一个列表,变量名为a
    23 >>> b = 678                                         #定义一个整型,变量名为b
    24 >>> di = {}
    25 >>> di
    26 {}
    27 >>> di = di.fromkeys(a,b)                           #iterable直接使用a,value使用b
    28 >>> di
    29 {'q': 678, 'w': 678, 'e': 678, 'r': 678}
    30 >>> 
    31 >>> a = ('q','w','e','r')                          #定义一个元组,变量名为a
    32 >>> b = 'python'
    33 >>> di = {}
    34 >>> di
    35 {}
    36 >>> di = di.fromkeys(a,b)                         #iterable直接使用a
    37 >>> di
    38 {'q': 'python', 'w': 'python', 'e': 'python', 'r': 'python'}
    39 >>> 

    get(k[,d])方法:返回指定键的值,如果值不在字典中返回默认值(默认值是空)。

     1 >>> di = {'a': 32, 'b': 32, 'c': 32}
     2 >>> di.get('c')             #查看对应key 'a' 的value
     3 32
     4 >>> di.get('d')             #查看对应键 'd'的值,字典里面是没有这个键的,默认返回为空。
     5 >>> di
     6 {'a': 32, 'b': 32, 'c': 32}
     7 >>> di.get('d',666)     #查看对应键 'd'的值,字典里面是没有这个键的,返回的值为参数值666。
     8 666
     9 >>> di
    10 {'a': 32, 'b': 32, 'c': 32}
    11 >>> 

     items()方法:以列表形式(并非直接的列表,若要返回列表值还需调用list函数)返回可遍历的(键, 值) 元组数组。

    >>> di
    {'a': 666, 'b': 666, 'c': 666}
    >>> di = {'tom':88,'luck':99} 
    >>> di.items()                             #使用items方法。
    dict_items([('tom', 88), ('luck', 99)])
    >>> a = list(di.items())                   #使用list()函数,并且使用变量a接住
    >>> a
    [('tom', 88), ('luck', 99)]
    >>> a[0]                               #查看列表中的元素,索引[0]
    ('tom', 88)
    >>> a[0][1]                           #查看列表中的元素,索引为[0][1]
    88
    >>> 
    

    keys()方法:列表返回一个字典所有的键。

    1 >>> di = dict(tom=100,jack=99,bob=88)
    2 >>> di.keys()                         #返回字典里面的键。
    3 dict_keys(['tom', 'jack', 'bob'])
    4 >>> list(di.keys())                  #转换成列表,方便使用索引查找。
    5 ['tom', 'jack', 'bob']
    6 >>> 

     pop(k[,d])方法:删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 如果指定的key不存,则返回default值。

     1 >>> di = dict(tom=88,jack=99,andy=100)             #使用工厂方法创建一个字典
     2 >>> di
     3 {'tom': 88, 'jack': 99, 'andy': 100}
     4 >>> di.pop('jack')                                      #删除指定key对应的值
     5 99
     6 >>> di                                                      #查看结果,整个键值对都被删除
     7 {'tom': 88, 'andy': 100}
     8 >>> di.pop('AAA','表示无奈')                         #删除一个不存在的键,返回给定的值 '表示无奈'
     9 '表示无奈'
    10 >>> di
    11 {'tom': 88, 'andy': 100}
    12 >>> 

    popitem()方法:随机返回并删除字典中的一对键和值,返回的一一对元组。

     1 >>> di = dict(tom=88,jack=99,andy=100,ccc=55)
     2 >>> di.popitem()    #随机删除一对键值(好像每次都是最后一个),以元组的方式呈现出来
     3 ('ccc', 55)
     4 >>> a = di.popitem()    #使用变量接删除的结果
     5 >>> a
     6 ('andy', 100)
     7 >>> type(a)               #查看删除的数据的类型,确定为元组
     8 <class 'tuple'>
     9 >>> di                          #查看最终删除后的字典
    10 {'tom': 88, 'jack': 99}
    11 >>> 

    setdefault(k[,d])方法:setdefault() 方法和 get() 方法类似,返回指定键的值,如果键不在字典中,将会添加键并将值设置为一个指定值,默认为None。get() 和 setdefault() 区别: setdefault() 返回的键如果不在字典中,会添加键(更新字典),而 get() 不会添加键。

     1 >>> di = {'tom': 88, 'jack': 99, 'andy': 100, 'ccc': 55}
     2 >>> di.setdefault('jack')     #返回指定键对应的值,值是什么类型就返回什么类型。
     3 99
     4 >>> di.setdefault('jackJACK',9999)  #这个键不存在,所以会更新到字典里面。
     5 9999    
     6 >>> di                   #查看更新后的结果。
     7 {'tom': 88, 'jack': 99, 'andy': 100, 'ccc': 55, 'jackJACK': 9999}
     8 >>> di.get('tomTOM',8888)    #比如get(),这个键也不存在,但是它也会返回一个指定的值,但是不会更新到字典里面。
     9 8888
    10 >>> di    #查看get()后的结果,并没有更新到字典。
    11 {'tom': 88, 'jack': 99, 'andy': 100, 'ccc': 55, 'jackJACK': 9999}
    12 >>> 

     update([E, ]**F)方法:把另一个字典的键/值对,更新到新的字典里。

    1 >>> di
    2 {'tom': 88, 'jack': 99, 'andy': 100, 'ccc': 55}
    3 >>> d2 = {'bob','66'}
    4 >>> d2.update(di)        #把字典di里面的键值对添加到字典di2中
    5 >>> d2                   #查看结果
    6 {'bob', 'ccc', 'tom', 'andy', '66', 'jack'}
    7 >>> 

    values()方法:以列表的形式返回字典中的所有值。

    1 >>> di
    2 {'tom': 88, 'jack': 99, 'andy': 100, 'ccc': 55}
    3 >>> di.values()         #返回字典里面所有的值
    4 dict_values([88, 99, 100, 55])
    5 >>> a = list(di.values())    #使用list()查看返回结果
    6 >>> a
    7 [88, 99, 100, 55]
  • 相关阅读:
    web.py的input获取问题
    python unicode和 utf8字符串比较
    python default encoding
    linux flash player的问题
    centos 支持 ntfs格式
    学习jqueryjquery中的show()和hide()
    字符串等长分割
    类加载器分类
    类加载器子系统
    70道HR的面试题
  • 原文地址:https://www.cnblogs.com/longxd/p/8583682.html
Copyright © 2011-2022 走看看