• Python中的字典介绍


    一、什么是字典?
    字典是python语言中唯一的映射类型
    映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的广西,通常被认为是可变的哈希表
    字典对象是可变的,它是一个容器类型,能存储任意个数的python对象,其中也包括其他容器类型。
    字典类型与序列类型的区别:
    1、存取和访问数据的方式不同
    2、序列类型只用数字类型的键
    3、映射类型可以用其他对象类型作为键
    4、映射类型中的数据是无序排列的
    5、映射类型用键直接"映射"到值
     
    二、如何创建字典和给字典赋值
    简单地说字典就是用大括号包裹的键值对的集合
    >>> d1 = {'x':1,3:'xz','z':[1,2,3,4]} 
    >>> print d1
    {'x': 1, 3: 'xz', 'z': [1, 2, 3, 4]}
     
    三、字典的基本操作
    1、如何访问字典中的值
    >>> print d1['z']
    [1, 2, 3, 4]
     
    2、如何检查key是否在字典中
    方法
    >>> d1.has_key('z')        //使用has_key()函数来判断键'z'是否存在于字典中
    True
     
    in 、ont in
    >>> 'z' in d1
    True
     
    3、如何更新字典
    a.添加一个新元素或键值对
    >>> d1['test'] = 'hello,world!!!!'    //随机网字典里面添加了一对键值
    >>> print d1
    {'test': 'hello,world!!!!', 'x': 1, 3: 'xz', 'z': [1, 2, 3, 4]}
     
    b.更新一个元素或键值对
    >>> d1['x'] = 'love beijing'        //通过重新定义旧的键值,起到修改作用    
    >>> print d1
    {'test': 'hello,world!!!!', 'x': 'love beijing', 3: 'xz', 'z': [1, 2, 3, 4]}
     
    c.删除一个元素或键值对
    >>> del d1[3]        //通过del函数进行删除相应的key-value
    >>> print d1
    {'test': 'hello,world!!!!', 'x': 'love beijing', 'z': [1, 2, 3, 4]}
     
    >>> d1.pop('test')        //通过pop()方法弹出一对key-value
    'hello,world!!!!'
    >>> print d1
    {'x': 'love beijing', 'z': [1, 2, 3, 4]}
     
    四、字典的方法
    1、adict.keys()返回一个保护字典所有key的列表
    >>> adict = {3:'3','x':35,'y':[1,2,3,4],'v':'test'}
    >>> adict.keys()        //通过keys()方法获取字典里面所有的键值
    ['y', 'x', 3, 'v']
     
    2、adict.values()返回一个包含字典所有value的列表
    >>> adict.values()
    [[1, 2, 3, 4], 35, '3', 'test']
     
    3、adict.items()返回一个包含所有元组的列表
    >>> print adict
    {'y': [1, 2, 3, 4], 'x': 35, 3: '3', 'v': 'test'}
    >>> adict.items()                                                //通过items方法将字典转变成元组
    [('y', [1, 2, 3, 4]), ('x', 35), (3, '3'), ('v', 'test')]
     
    4、adict.clear()删除字典中的所有项或元素
    >>> d6 = {1:3,3:'z','b':78}
    >>> print d6
    {1: 3, 3: 'z', 'b': 78}    
    >>> d6.clear()            //利用clear()函数清空整个字典
    >>> print d6
    {}
     
    5、adict.copy()返回一个字段浅拷贝的副本
    >>> d7 = adict.copy()                //利用copy()函数复制了一个字典,并且不随原始字典的变化而变化
    >>> print d7
    {'y': [1, 2, 3, 4], 'x': 35, 3: '3', 'v': 'test'}
    >>> adict['test'] = 'uuuuuu'
    >>> print d7
    {'y': [1, 2, 3, 4], 'x': 35, 3: '3', 'v': 'test'}
     
    6、adict.fromkeys(seq,val=None)创建并返回一个新字典,以seq中的元素做该字段的键,val做该字典中所有键对应的初始值
     
    7、adict.get(key,default = None)返回字典中key对应的值,若key不存在字典中,则返回default的值(默认为None)
    >>> adict.get('test')        //通过get()方法返回对应的value值
    'uuuuuu
     
    8、adict.has_keys(key)如果key在字典中,返回True,否则返回False
    >>> adict.has_key('3')        //通过has_key()方法查看字典中是否有相应的值,有则为真,无则为假
    False
    >>> adict.has_key('v')
    True
     
    9、adict.iteritems()、adict.iterkeys()、adict.itervalues()与它们对应的非迭代方法一样
     
    10、adict.pop(key)和get方法相似,如果字典中存在key,删除并返回key对应的value
     
    11、adict.setdefalut(key,defalut=None)与set()方法相似,但如果字典中不存在key键,由adict[key] = default为它赋值
    >>> print adict['vdddd']
    tset
    >>> adict.setdefault('vdddd','tsetdddd')        //如果值存在,则不进行赋值,不存在则赋值
    'tset'
    >>> print adict['vdddd']
    tset
     
    12、adict.update(bdict)将字典bdict的键值对添加到字典adict中
     
    五、字典的遍历
    1、遍历字典的key(键)
    >>> for i in adict.keys():    //通过for循环,并且keys()方法统计字典中的键,进行遍历
    ...    print i
    ... 
    3
    test
    vdddd
    v
    y
    x
     
    2、遍历字段的value(值)
    >>> for i in adict.values():
    ...    print i
    ... 
    3
    uuuuuu
    tset
    test
    [1, 2, 3, 4]
    35
     
    3、遍历字段的项
    >>> for i in adict.items():        //通过items()方法将字典转为元组的列表,再进行遍历
    ...    print i
    ... 
    (3, '3')
    ('test', 'uuuuuu')
    ('vdddd', 'tset')
    ('v', 'test')
    ('y', [1, 2, 3, 4])
    ('x', 35)
     
    4、遍历字典的key-value
    >>> for key,value in adict.items():    //也是一个经典的遍历
    ...    print 'key=%s value=%s'%(key,value)
    ... 
    key=3 value=3
    key=test value=uuuuuu
    key=vdddd value=tset
    key=v value=test
    key=y value=[1, 2, 3, 4]
    key=x value=35
  • 相关阅读:
    Trapping Rain Water
    Construct Binary Tree from Preorder and Inorder Traversal
    Flatten Binary Tree to Linked List
    Permutations II
    Unique Paths II
    Path Sum II
    Unique Binary Search Trees II
    evdev module-----uinput.py
    evdev module-----events.py
    evdev module-----device.py
  • 原文地址:https://www.cnblogs.com/xiangys0134/p/8059737.html
Copyright © 2020-2023  润新知