zoukankan      html  css  js  c++  java
  • Python内置数据类型之——字典(Dictionary)

    Python中有三种内置的数据类型。dictionary(字典)、List(列表)和tuple(元组)。下面我将对这几个内置的数据类型进行总结。

       Dictionary(字典)

       首先,什么是字典呢?

    通俗地来讲,字典无非就是很多的数据,但是它有一个目录,可以通过目录中的一个简单值来找到与之相对于的详细信息。换句话来说,目录就是内容的一个特殊标示,即目录中的每一个字段,都会在内容中有与之相对应的详细信息。也就是说,目录中的每一个信息都是唯一的,与目录中的其他信息互不冲突。

    在Python的Dictionary不只是用于存储字符串。Dictionary的值可以是任意数据类型,包括字符串,整数,对象,甚至其它的 dictionary。在单个 dictionary里, dictionary的值并不需要全都是同一数据类型,可以根据需要混用和匹配。但是Python的key就比较严格了,它们可以是字符串,整数(我知道的只有这两种)。也可以在一个 dictionary中混用和配匹 key的数据类型。

       定义Dictionary

    dic = {"server":"apache", "database":"master"}每一个元素都是一个 key-value对, 整个元素集合用大括号括起来。可以通过 key来引用其值,但是不能通过值获取 key。所以d["server"]的值为 'apache'。

    修改Dictionary

    在一个 dictionary中不能有重复的key,但我们可以给一个存在的 key赋值,覆盖原有的值。如,我要将Dictionary dic中“server”的值改为“weblogic”,dic[“server”] =“weblogic”。

    添加key-value

    添加键值对其实很简单,举个简单的例子:我要在Dictionary中添加user=’root’的键值对,dic[“user”] = “root”。

    Dictionary中的常用方法:

    len(a)

    得到字典a中元素的个数

    a[k]

    取得字典a中键K所对应的值

    a[k] = v

    设定字典a中键k所对应的值成为v

    del a[k]

    使用 key从一个 dictionary中删除独立的元素。如,删除Dictionary dic中的user=’root’:del dic[“user”]

    a.clear()

    从一个 dictionary中清除所有元素。如,删除Dictionary dic中的所有元素:dic.clear()

    a.copy()

    得到字典副本

    k in a

    字典中存在键k则为返回True,没有则返回False

    k not in a

     字典中不存在键k则为返回true,反之返回False

    a.has_key(k)

    判断字典a中是否含有键k

    a.items()

    得到字典a中的键—值对list

    a.keys()

    得到字典a中键的list

    a.update([b])

    从b字典中更新a字典,如果键相同则更新,a中不存在则追加.

    a.fromkeys(seq[, value])

    创建一个新的字典,其中的键来自sql,值来自value

    a.values()

    得到字典a中值的list

    a.get(k[, x])

    从字典a中取出键为k的值,如果没有,则返回x

    a.setdefault(k[, x])

    将键为k的值设为默认值x。如果字典a中存在k,则返回k的值,如果不存在,向字典中添加k-x键值对,并返回值x

    a.pop(k[, x])

    取出字典a中键k的值,并将其从字典a中删除,如果字典a中没有键k,则返回值x

    a.popitem()

    取出字典a中键值对,并将其从字典a中删除

    a.iteritems()

    返回字典a所有键-值对的迭代器。

    a.iterkeys()

    返回字典a所有键的迭代器。

    a.itervalues()

    返回字典a所有值的迭代器。

    注意:

    Dictionary中的key值是大小写敏感的。并且在同一个dictionary中不能有重复的key值。并且,Dictionary中没有元素顺序的概念。

    操作演示代码:

     
    >>> a = {1:'ddd','dds':'dddddddddddddd'}  
    >>> a  
    {'dds': 'dddddddddddddd', 1: 'ddd'}  
    >>> a.has_key(1)  
    True  
    >>> a.items  
    <built-in method items of dict object at 0x01220C90>  
    >>> a.items()  
    [('dds', 'dddddddddddddd'), (1, 'ddd')]  
    >>> b = {2:4545}  
    >>> a  
    {'dds': 'dddddddddddddd', 1: 'ddd'}  
    >>> b  
    {2: 4545}  
    >>> a.update(b)  
    >>> a  
    {'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545}  
    >>> a  
    {'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545}  
    >>> c = {2:4545,4:5656}  
    >>> c  
    {2: 4545, 4: 5656}  
    >>> a  
    {'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545}  
    >>> a.update(c)  
    >>> a  
    {'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545, 4: 5656}  
    >>> a.itervalues()  
    <dictionary-valueiterator object at 0x0121ACF0>  
    >>> c = a.itervalues()  
    >>> print c  
    <dictionary-valueiterator object at 0x0121ACC0>  
    >>> for xx in c:  
        print xx  
      
          
    dddddddddddddd  
    ddd  
    4545  
    5656  
    >>> a  
    {'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545, 4: 5656}  
    >>> a.setdefault(1,7878)  
    'ddd'  
    >>> a.setdefault(5,7878)  
    7878  
    >>> a  
    {'dds': 'dddddddddddddd', 1: 'ddd', 2: 4545, 4: 5656, 5: 7878}  
    >>> a.pop(2,99)  
    4545  
    >>> a  
    {'dds': 'dddddddddddddd', 1: 'ddd', 4: 5656, 5: 7878}  
    >>> a.pop(6,9090)  
    9090  
    >>> a  
    {'dds': 'dddddddddddddd', 1: 'ddd', 4: 5656, 5: 7878}  
    >>>   

    文章摘自:https://blog.csdn.net/yima1006/article/details/7430323

    http://blog.51cto.com/ipseek/789896这篇写得更全,以后有时间再继续整理吧

  • 相关阅读:
    redis客户端windows版中文乱码解决方案
    nginx做负载均衡,怎么在有宕机情况出现时保证网站的响应速度
    支付宝同步和异步验签结果不一致的解决方法
    @ResponseBody中文乱码解决方案
    [javamail]AUTH LOGIN failed;Invalid username or password报错
    Could not load driverClass ${driverClassName} 的解决方案
    eclipse中,maven报错maven.multiModuleProjectDirectory system property is not set
    spring bean初始化和销毁方法
    关于静态资源是否应该放到WEB-INF目录
    使用Jedis出现Connection refused的解决方案
  • 原文地址:https://www.cnblogs.com/unicorn2105/p/8712278.html
Copyright © 2011-2022 走看看