• Python(2.7)-字典(dict)


    2.4字典(dict)

    字典基础d={key1:value1,key2:value2}

    字典跟列表一样,是一种可变容器模型,可以存储任意类型的对象。值(value)可以取任何数据类型,但键(key)必须是不可变的,如字符串,数字或元组,使用可变类型,比如列表等,会报错。

    字典的每个键值(key:value)之间用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中;字典中的key/value对是没有顺序的,因此他不属于序列,如果你需要一个特定顺序,需要在使用之前对其排序,从字典中查找数据(哈希)比序列要快

    2.4.1新增(dict[key]=value)

      dict[key]=value:往字典dict中新增一个key/value

    >>> dict={}

    >>> dict["name"]="pangwei"

    >>> dict["age"]=25

    >>> dict["sex"]="m"

    >>> dict

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> 

    2.4.2修改(dict[key]=value)

      dict[key]=value:往字典中修改内容的方法就是新增键值对,通过key值修改value值,无法通过value值修改key值。

    >>> dict

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> dict["age"]=26

    >>> dict

    {'age': 26, 'name': 'pangwei', 'sex': 'm'}

    >>> 

    2.4.3删除(del dict[key];del dict;dict.pop(key);dict.popitem();dict.clear())

           del dict[key]:删除dict中键为key的键值对

    >>> dict

    {'age': 26, 'name': 'pangwei', 'sex': 'm'}

    >>> del dict["sex"]

    >>> dict

    {'age': 26, 'name': 'pangwei'}

    >>> 

      del dict:删除整个字典

    >>> dict1={'age': '25', 'name': 'pangwei', 'sex': 'm'}

    >>> del dict1

    >>> dict1

    Traceback (most recent call last):

      File "<stdin>", line 1, in <module>

    NameError: name 'dict1' is not defined

    >>> 

      dict.pop(key):取出字典中键为keyvalue值并删除该键值对

    >>> dict={'age': '25', 'name': 'pangwei', 'sex': 'm'}

    >>> dict.pop("age")

    '25'

    >>> dict

    {'name': 'pangwei', 'sex': 'm'}

    >>> 

      dict.popitem():随机取出并删除dict中的一个键值对

    >>> dict={'age': '25', 'name': 'pangwei', 'sex': 'm'}

    >>> dict.popitem()

    ('age', '25')

    >>> dict

    {'name': 'pangwei', 'sex': 'm'}

    >>> 

      dict.clear():清空指定字典

    >>> dict={'age': '25', 'name': 'pangwei', 'sex': 'm'}

    >>> dict.clear()

    >>> dict

    {}

    >>> 

    2.4.4字典访问

     

      dict [key]:返回键为指定内容的value

    >>> a

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> a["sex"]

    'm'

    >>> 

      dict.keys();dict.values();dict.items():用列表输出dict中所有的key;用列表输出dict中所有的value;用列表输出dict中所有的key/value对,每一对存于一个元组中

    >>> a

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}    

    >>> a.keys()

    ['age', 'name', 'sex']

    >>> a.values()

    [25, 'pangwei', 'm']

    >>> a.items()

    [('age', 25), ('name', 'pangwei'), ('sex', 'm')]

    >>> 

      for k in dict.keys():查询字典dict中所有key

    >>> a

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> for k in a.keys():

    ...     print k

    ...

    age

    name

    sex

    >>> 

     

      for v in dict.values():查询字典dict中所有value

    >>> a

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> for v in a.values():

    ...     print v

    ...

    25

    pangwei

    m

    >>> 

     

      for k, v in dict.items():查询字典dict中所有keyvalue

    >>> a

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> for k,v in a.items():

    ...     print k,v

    ...

    age 25

    name pangwei

    sex m

    >>> 

    2.4.5字典内置函数(cmp(dict1,dict2);len(dict))

      cmp(dict1,dict2):比较两个字典元素

    >>> a={'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> b={'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> cmp(a,b)

    0

    >>> c={'bge': 90, 'same': 'pangwei'}

    >>> cmp(a,c)

    1

    >>> d={1:11,2:22,3:33,4:44}

    >>> cmp(a,d)

    -1

    >>> 

      len(dict):返回字典元素个数

    >>> a={'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> len(a)

    3

    >>> 

    2.4.6字典内置方法

      dict.copy():返回一个字典的浅拷贝  注意:拷贝只是将字典复制到了另一个内存地址,是一个独立的存在,跟原字典不存在联系

    >>> a

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> a.copy()

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> id(a)

    40973992L

    >>> id(a.copy())

    40974536L

    >>> a

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> b=a.copy()

    >>> b

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> a["age"]=26

    >>> a

    {'age': 26, 'name': 'pangwei', 'sex': 'm'}

    >>> b

    {'age': 25, 'name': 'pangwei', 'sex': 'm'} 

    >>> a["cost"]=100

    >>> a

    {'age': 26, 'cost': 100, 'name': 'pangwei', 'sex': 'm'}

    >>> b

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>>

      dict.fromkeys(seq,value=None):创建一个新的字典,以序列seq中的元素作为字典的key值,以value作为所有key值对应的初始value值,value为非必传参数,如果不传则默认为None

    >>> dict.fromkeys("abcd",0)

    {'a': 0, 'c': 0, 'b': 0, 'd': 0}

    >>> dict.fromkeys("abcd")

    {'a': None, 'c': None, 'b': None, 'd': None}

    >>> 

      dict.get(key,default=None):返回指定键的value值,如果键不在字典中,返回default值

    >>> a

    {'cost': 100, 'name': 'pangwei', 'sex': 'm'}

    >>> a.get("age")

    >>> a.get("cost")

    100

    >>> a.get("age","error")

    'error'

    >>> 

       dict.setdefault(key,default=None):返回指定键的value值,如果键不在字典中,将会添加键并将值设为default

    >>> a

    {'cost': 100, 'name': 'pangwei', 'sex': 'm'}

    >>> a.setdefault("cost",10)

    100

    >>> a.setdefault("age",25)

    25

    >>> a

    {'age': 25, 'cost': 100, 'name': 'pangwei', 'sex': 'm'}

    >>> 

      dict.has_key(key):判断键是否在字典里面,如果键在字典dict里返回True,否则返回False

    >>> a

    {'cost': 100, 'name': 'pangwei', 'sex': 'm'}

    >>> a.has_key("age")

    False

    >>> a.has_key("cost")

    True

    >>> 

         dict.update(dict2):把字典dict2的键/值对更新到dict,注意:如果dictdict2中有相同的key值,则对应的value值也会被更新

    >>> a

    {'age': 25, 'name': 'pangwei', 'sex': 'm'}

    >>> d

    {2: 22, 3: 33, 'age': 27}

    >>> a.update(d)

    >>> a

    {2: 22, 3: 33, 'name': 'pangwei', 'age': 27, 'sex': 'm'} #字典a中”age”更新了

    >>> 

  • 相关阅读:
    python 操作 mysql 数据库 datetime 属性字段为 0000-00-00 00:00:00 的问题
    git 学习笔记
    SB Admin 2 学习笔记1
    docker容器与容器云读书笔记1
    urlencode遇到中文编码问题
    flask_sqlalchemy 乱码问题
    centos6u3 安装 celery 总结
    flask_sqlalchemy 命名遇到的一个小坑
    使用 bash 创建定时任务
    tornado 异步调用系统命令和非阻塞线程池
  • 原文地址:https://www.cnblogs.com/pw20180101/p/8193518.html
Copyright © 2020-2023  润新知