1.字典的基本知识
定义:字典(Dict),是可变的无序集合,同时是一种以键值对为基本元素的可以存储各种数据类型的集合,用大括号({ })表示字典的开始和结束,元素之间用逗号分隔
键值对:由键(Key)和值(Value)组成,中间用冒号(:)分隔。
如“tom:29”的键为tom,对应的值为29.采用键值对,可以更加独立而紧密地表示两者之间的关系。可以看出,字典属于典型的一一映射关系的数据类型。
>>> {}
{}
>>> d1={'tom':29}
>>> len(d1)
1
>>> d2={1:'car',2:'dog'}
>>> len(d2)
2
字典的键,值设计要求
(1)键的要求设计:
唯一性:一个字典对象里所有的键必须唯一(相同键值的元素保留最后一个)
不可变性:字典在使用过程中明确,不能对元素的键进行直接修改(不能接受可以修改的列表对象作为键被使用)
(2)值的设置要求:
Python语言支持的任何对象
字典的基本方法:
注意 :字典内部结构由哈希表构成,通过唯一的键访问对应的值,所以字典对象没有提供排序功能,字典数据类型是无序的,这是与列表和元组的一个明显区别。
字典元素的增加:
(1)利用赋值给字典增加元素
>>> d1={'Tom':19,'Jame':18}
>>> d1['Mike']=8
>>> print(d1)
{'Tom': 19, 'Jame': 18, 'Mike': 8}
可以看出,给字典新增加值的样式为:字典名[新键值名]=键值
注意:若字典里已经有新增加的键值,那么将会改变指定键的值
列表变量和字典变量中带中括号的区别
(1)列表通过L[x]=value的方法,修改对应的元素,x为指定的下标
(2)字典通过D[k]=value的方法,为字典增加新元素或者改变键值
(2)利用setdefault()方法给字典增加元素
使用格式为:D.setfault(k,d),D代表字典对象,k代表新键,d代表新增键对应的值。若指定键已经存在,则显示已经存在键的值。
字典值查找
(1)字典名+[Key]查找
>>> d2={'red':1,'blue':2,'yellow':3}
>>> print(d2['red'])
1
(2)利用get()方法查找
使用格式为D.get(键),例如:
>>> d2={'red':1,'blue':2,'yellow':3}
>>> d2.get('red')
1
这两种方法的区别在于:若键值不存在,第一种方法会返回错误代码提示,第二种方法则返回空值
字典值修改
(1)利用赋值修改键对应值
>>> d2={'red':1,'blue':2,'yellow':3}
>>> d2['green']=4
>>> print(d2)
{'red': 1, 'blue': 2, 'yellow': 3, 'green': 4}
上述操作要求,在字典对象里确保存在要修改的键,否则变成了增加新的键值对。
(2)利用update()方法修改键对应值
更新字典里对应值
>>> d2={'red':1,'blue':2,'yellow':3}
>>> d3={'red':5,'blue':4}
>>> d2.update(d3)
>>> d2
{'red': 5, 'blue': 4, 'yellow': 3}
新增键值对
>>> d2={'red':1,'blue':2,'yellow':3}
>>> d2.update({'green':4})
>>> d2
{'red': 1, 'blue': 2, 'yellow': 3, 'green': 4}
在Python语言里有不少对象的方法,存在两种操作状态。例如,update()既可以实现对字典有键的值的更新,又可以实现对字典新元素的的增加;satfault()方法既可以实现对字典新元素的增加,又可以对现有元素值的显示作用。
字典元素删除
1.利用del函数删除
>>> d2={'red':1,'blue':2,'yellow':3}
>>> del(d2['red'])
>>> d2
{'blue': 2, 'yellow': 3}
2.利用pop()方法删除
使用格式时D.pop(k)。其中,D代表字典对象,k为需要删除的元素n的键。
3.利用popitem()方法删除
使用格式为D.popitem()。D代表字典对象,随机返回一个键值对元组,并在字典里删除对应的元组
>>> d2={'red':1,'blue':2,'yellow':3}
>>> k1,v1=d2.popitem()
>>> k1,v1
('yellow', 3)
>>> d2
{'red': 1, 'blue': 2}
字典遍历操作
1.遍历所有键值对
利用items()方法遍历所有键值对
>>> d2={'red':1,'blue':2,'yellow':3}
>>> for get_L in d2.items():
print(get_L)
('red', 1)
('blue', 2)
('yellow', 3)
2.遍历所有键
(1)直接遍历
>>> d2={'red':1,'blue':2,'yellow':3}
>>> for get_L in d2:
print(get_L)
red
blue
yellow
(2)函数遍历
>>> d2={'red':1,'blue':2,'yellow':3}
>>> for get_L in d2.keys():
print(get_L)
red
blue
yellow
3,遍历所有值
(1)通过键值遍历
>>> d2={'red':1,'blue':2,'yellow':3}
>>> for get_L in d2:
print(d2[get_L])
1
2
3
(2)利用values()方法获取字典
>>> d2={'red':1,'blue':2,'yellow':3}
>>> for get_L in d2.values():
print(get_L)
1
2
3
字典的其他操作方法
1.in成员操作:判断某个键是否在字典内
2.clear()方法:清空字典
3.copy()方法:可以避免字典变量之间直接赋值指向同一地址的问题。
集合
有关集合知识的整理请参考如下网址:
Python集合知识详解