zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    机器学习
    arm 基本
    阿里RDS备份恢复
    hive 调用java的函数和科学记数法转换
    hive 调用java的函数和科学记数法转换
    hive处理hbase数据
    hive处理hbase数据
    Sqoop导入mysql数据到Hbase
    Sqoop导入mysql数据到Hbase
    Hbase基础操作
  • 原文地址:https://www.cnblogs.com/xiangys0134/p/8059737.html
Copyright © 2011-2022 走看看