字典
字典是python的一种数据结构,也是一种可变容器模型,并且可以存储任意类型对象;
字典是由键和对应的值成对组成,键可以对应多个值,键和值之间使用冒号进行隔开,每个元素使用逗号隔开,元素存放在花括号中{}。
字典也被成为关联数组和哈希表;
字典常用方法
1.字典的创建
键必须独一无二,值可以去任何数据类型,但必须是不可变的;
#定义一个空的字典
dict1 = {}
print(dict1,type(dict1))
输出结果:
{} <class 'dict'>
#定义一个普通的字典
dict2 = {1:'a',2:'b',3:'c',4:'d'}
print(dict2,type(dict2))
输出结果:
{1: 'a', 2: 'b', 3: 'c', 4: 'd'} <class 'dict'>
2.访问字典的值
字典是根据键来访问值,如果键不存在,执行会报错;
dict2 = {1:'a',2:'b',3:'c',4:'d'}
print(dict2[2])
输出结果:
b
3.修改字典
dict2 = {1:'a',2:'b',3:'c',4:'d'}
dict2[2] = 'jjjj'
print(dict2)
输出结果:
{1: 'a', 2: 'jjjj', 3: 'c', 4: 'd'}
4.增加元素到字典
dict2 = {1:'a',2:'b',3:'c',4:'d'}
dict2[5] = 'jjjj'
print(dict2)
输出结果:
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'jjjj'}
5.字典的删除
dict2 = {1:'a',2:'b',3:'c',4:'d'}
#删除字典键为2的值
del dict2[1]
print(dict2)
#清空字典的所有元素
dict2.clear()
print(dict2)
#删除字典
del dict2
print(dict2)
#执行会报错:NameError: name 'dict2' is not defined
输出结果:
{2: 'b', 3: 'c', 4: 'd'}
{}
NameError: name 'dict2' is not defined
6.字典的复制
副本的值改变不会对元数据产生影响
#返回一个字典的浅复制
dict2 = {1:'a',2:'b',3:'c',4:'d'}
dict1 = dict2.copy()
print(dict1,id(dict1))
print(dict2,id(dict2))
dict1[5] = 'hello'
print(dict1,id(dict1))
print(dict2,id(dict2)))
输出结果:
{1: 'a', 2: 'b', 3: 'c', 4: 'd'} 31033312
{1: 'a', 2: 'b', 3: 'c', 4: 'd'} 31033240
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'hello'} 31033312
{1: 'a', 2: 'b', 3: 'c', 4: 'd'} 31033240
7.字典的内置函数**
radiansdict.fromkeys() #创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None) #返回指定键的值,如果值不在字典中返回default值
radiansdict.has_key(key) #如果键在字典dict里返回true,否则返回false
radiansdict.items() #以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys() #以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None) #和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2) #把字典dict2的键/值对更新到dict里
radiansdict.values() #以列表返回字典中的所有值
转载于:https://blog.51cto.com/13606177/2352598