zoukankan      html  css  js  c++  java
  • python 数据结构

    python的字典是一种可变容器模型,且可存储任意类型对象。字典是无序的,没有索引。

    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:

    1 >>> d = {'k1':'v1','k2':'v2',}
    2 >>> d
    3 {'k2': 'v2', 'k1': 'v1'}
    4 >>> 

    在字典里面,键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    一个简单的字典实例:

    1 >>> d = {'k1':'v1','k2':'v2','2':5,}
    2 >>> d['2']
    3 5
    4 >>> 

    创建字典:

      创建空字典:

    1 >>> d = dict()
    2 >>> d
    3 {}
    4 >>> d1 = {}
    5 >>> d1
    6 {}
    7 >>> 

      创建非空字典:

    1 >>> d = {'name':'admin','gender':'man','job':'python',}
    2 >>> d
    3 {'job': 'python', 'gender': 'man', 'name': 'admin'}
    4 >>> 

      注意:在创建字典时,键名一定是不可变的(如数字,字符串等),并且若同一个键名被创建n(n>1)次,则该键前面所有的值都会被后一个值覆盖,到最后只留下最后一次赋予的值。

    1 >>> d = {'name':'admin','job':'python','name':'root',}
    2 >>> d['name']
    3 'root'
    4 >>> d
    5 {'job': 'python', 'name': 'root'}
    6 >>> 

    访问字典里面的值:

    1 >>> d = {'name':'admin','gender':'man','job':'python',}
    2 >>> d['name']
    3 'admin'
    4 >>> d['job']
    5 'python'
    6 >>> 

    字典更新:

      若键存在,则更新对应的值,若不存在,直接添加键值对

    1 >>> d = {'job': 'python', 'gender': 'man', 'name': 'admin'}
    2 >>> d['name'] = 'root'
    3 >>> d
    4 {'job': 'python', 'gender': 'man', 'name': 'root'}
    5 >>> d['age'] = 22
    6 >>> d
    7 {'job': 'python', 'gender': 'man', 'name': 'root', 'age': 22}
    8 >>> 

    删除字典:

      删除单个元素:

    1 >>> d = {'job': 'python', 'gender': 'man', 'name': 'root'}
    2 >>> del d['gender']
    3 >>> d
    4 {'job': 'python', 'name': 'root'}
    5 >>> 

      删除整个字典:

    >>> d1 = {'job': 'python', 'name': 'root'}
    >>> del d1
    >>> d1
    Traceback (most recent call last):
      File "<pyshell#28>", line 1, in <module>
        d
    NameError: name 'd1' is not defined

      清空字典所有元素:

    1 >>> d = {'job': 'python', 'gender': 'man', 'name': 'root'}
    2 >>> d.clear()
    3 >>> d
    4 {}
    5 >>> 

      

    注意:

      1、要判断一个字符串是否是字典的键,直接用in即可。 

    1 >>> d = {'a':1, 'b':2}
    2 >>> 'a' in d
    3 True
    4 >>> 'v' in d
    5 False
    6 >>> 

       2、字典中的键可以是数字,字符串,对象等。若一个键是数字,另一个键是字符串,其内的数字与另一个键相同,他们是不同的键值对:

    1 >>> d = {1:2, '1':3}
    2 >>> d[1]
    3 2
    4 >>> d['1']
    5 3
    6 >>> 

    字典的内置函数和方法:

      内置函数:

    1 len(dic)
    2 '''返回字典键的个数'''
    3 str(dic)
    4 '''输出字典,以可打印的字符串表示'''
    5 type(dic)
    6 '''返回输入对象的类型,字典就返回字典类型'''

       字典的方法:

     1 '''字典内置方法'''
     2 
     3 get()
     4 '''传入键名或键名和默认值,返回指定键的关联值,若指定键不存在,则返回默认值。eg:d.get('x',99)'''
     5 keys()
     6 '''以迭代器的形式返回字典中的所有键,所得的列表中的每个条目肯定唯一'''
     7 values()
     8 '''以迭代器形式返回字典里面的所有的值,所得列表中的每个条目不一定唯一'''
     9 items()
    10 '''返回(key,value)列表'''
    11 update()
    12 '''用另一个字典的内容对当前字典进行更新'''
    13 pop()
    14 '''pop(k [, d]) 这个可以不传递值,默认删除并返回最后一个键值对的值,传入一个k,则返回k的值。若键名k不存在,且没有设置默认值d,就会报错,若设置了d就返回d'''
    15 popitem()
    16 '''删除,并且返回一个键值对(key,value)形式。如果字典已经为空,却调用了此方法,就报出KeyError异常。'''
    17 copy()
    18 '''返回一个字典的浅赋值'''
    19 dict.fromkeys(seq[, val])
    20 '''创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值'''
    21 setdefault(key, default=None)
    22 '''和get()类似, 但如果键不存在于字典中,将会添加键到原字典并将值设为default,同时返回default'''
  • 相关阅读:
    hdoj 2803 The MAX【简单规律题】
    hdoj 2579 Dating with girls(2)【三重数组标记去重】
    hdoj 1495 非常可乐【bfs隐式图】
    poj 1149 PIGS【最大流经典建图】
    poj 3281 Dining【拆点网络流】
    hdoj 3572 Task Schedule【建立超级源点超级汇点】
    hdoj 1532 Drainage Ditches【最大流模板题】
    poj 1459 Power Network【建立超级源点,超级汇点】
    hdoj 3861 The King’s Problem【强连通缩点建图&&最小路径覆盖】
    hdoj 1012 u Calculate e
  • 原文地址:https://www.cnblogs.com/xtsec/p/6599145.html
Copyright © 2011-2022 走看看