zoukankan      html  css  js  c++  java
  • 字典(dict)

            字典是Python中比较特别的一类数据类型,字典中的每个成员是以“键(key):值(value)”对的形式存在的。

            字典以大括号“{}”包围的以“键:值”对方式声明和存在的结构数据。与列表最大的不同在于字典是无序的,其成员位置只有象征性,在字典中通过键来访问成员,而不通过其位置来访问该成员。

    1、字典键的特性

            字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

    两个重要的点需要记住:

    1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住,如下实例:

    >>> adct = {'name':'kuenen','age':24, 'name':'tom'}
    >>> adct
    {'name': 'tom', 'age': 24}
    >>> adct['name']
    'tom'

    2)键必须不可变类型,如数字、字符串、包含不可变对象的元组。

    >>> bdct = {('name','age'):('kuenen',25)}
    >>> bdct
    {('name', 'age'): ('kuenen', 25)}
    >>> cdct = {(['name','age']):(['kuenen',25])}
    Traceback (most recent call last):
      File "<pyshell#16>", line 1, in <module>
        cdct = {(['name','age']):(['kuenen',25])}
    TypeError: unhashable type: 'list'

    2、字典的基本操作

    (1)创建字典

    创建空字典

    >>> {}
    {}
    >>> dict()
    {}
    >>> adct = {'a':1,'b':2,'c':3}
    >>> adct
    {'c': 3, 'a': 1, 'b': 2}

    (2)访问字典的值

    >>> bdct = {'name':'kuenen','age':25}
    >>> bdct['name']
    'kuenen'

    (3)修改字典的值

    >>> bdct
    {'name': 'kuenen', 'age': 25}
    >>> bdct['age']= 27
    >>> bdct
    {'name': 'kuenen', 'age': 27}

    (4)添加键值对

    >>> bdct
    {'name': 'kuenen', 'age': 27}
    >>> bdct['sex'] = 'man'
    >>> bdct
    {'name': 'kuenen', 'age': 27, 'sex': 'man'}

    (5)删除字典

    >>> bdct
    {'name': 'kuenen', 'age': 27, 'sex': 'man'}
    >>> del bdct['age']    # 删除键是'age'的item
    >>> bdct
    {'name': 'kuenen', 'sex': 'man'}
    >>> bdct.clear()    # 清空字典所有条目
    >>> bdct
    {}
    >>> del bdct    # 删除字典
    >>> bdct
    Traceback (most recent call last):
      File "<pyshell#36>", line 1, in <module>
        bdct
    NameError: name 'bdct' is not defined

    3、字典内置方法

    dict.clear()

    删除字典内所有元素

    dict.copy()

    返回一个字典的浅复制

    dict.fromkeys(seq,value)

    创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值,默认为None

    dict.get(key, default=None)

    返回指定键的值,如果值不在字典中返回default值

    dict.items()

    以列表返回可遍历的(键, 值) 元组数组

    dict.keys()

    以列表返回一个字典所有的键

    dict.pop(key)

    删除k:v键值对

    dict.popitem()

    从字典中删除任一k:v键值对,并返回它

    dict.setdefault(key, default=None)

    和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default

    dict.update(dict2)

    把字典dict2的键/值对更新到dict里

    dict.values()

    以列表返回字典中的所有值

    示例代码:

    >>> adct = {'name': 'kuenen', 'age': 25}
    >>> bdct = adct.copy()
    >>> bdct
    {'name': 'kuenen', 'age': 25}
    >>> cdct = dict.fromkeys('python')
    >>> cdct
    {'o': None, 't': None, 'y': None, 'n': None, 'p': None, 'h': None}
    >>> ddct = dict.fromkeys(['python','java'],10)
    >>> ddct
    {'python': 10, 'java': 10}
    >>> adct
    {'name': 'kuenen', 'age': 25}
    >>> adct.get('name')
    'kuenen'
    >>> adct.get('class')
    >>> adct.get('class','None')
    'None'
    >>> adct.items()
    dict_items([('name', 'kuenen'), ('age', 25)])
    >>> for i in adct.items():
    print(i)
     
    ('name', 'kuenen')
    ('age', 25)
    {'name': 'kuenen', 'age': 25}
    >>> adct.pop('name')
    'kuenen'
    >>> adct
    {'age': 25}
    >>> bdct
    {'name': 'kuenen', 'age': 25}
    >>> bdct.popitem()
    ('name', 'kuenen')
    >>> bdct
    {'age': 25}
    >>> adct
    {'age': 25}
    >>> adct.setdefault('name')
    >>> adct
    {'name': None, 'age': 25}
    >>> adct.setdefault('age')
    25
    >>> adct.setdefault('sex','man')
    'man'
    >>> adct
    {'name': None, 'age': 25, 'sex': 'man'}
    >>> bdct = {'a':1}
    >>> adct.update(bdct)
    >>> adct
    {'a': 1, 'name': None, 'age': 25, 'sex': 'man'}
    >>> adct.values()
    dict_values([1, None, 25, 'man'])

    4、字典遍历

    (1)遍历字典的key

    >>> adct
    {'a': 1, 'name': None, 'age': 25, 'sex': 'man'}
    >>> for key in adct.keys():
    print(key)
     
    a
    name
    age
    sex

    (2)遍历字典的value

    >>> for value in adct.values():print(value)
    
    1
    None
    25
    man

    (3)遍历字典的item

    >>> for item in adct.items():print(item)
    
    ('a', 1)
    ('name', None)
    ('age', 25)
    ('sex', 'man')

    (4)遍历字典的key-value

    >>> for key,value in adct.items():
    print(key,value)
     
    a 1
    name None
    age 25
    sex man

    参考文档:

    <http://www.runoob.com/python/python-dictionary.html

  • 相关阅读:
    Java学习之内部类
    Java学习之方法内部类
    CTFHub:RCE命令注入
    C++ :string 用法详解
    oracle数据类型
    a[0]=1,a[1]=11,a[2]=21,a[3]=1211找出规律,输入下标,得出对应的值
    python计算登山队最远坐标
    子网掩码
    实现点赞功能
    获取评论数和细节处理
  • 原文地址:https://www.cnblogs.com/kuenen/p/5984946.html
Copyright © 2011-2022 走看看