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'''
原文地址:https://www.cnblogs.com/xtsec/p/6599145.html