字典的基本知识
1、定义:字典(Dict), 是可谈的无序集合,同时是一种以键值对为基本元素的可以存储各种数据类型的集合,用大括号{}表示字典的开始与结束,元素之间用(,)分隔。
键值对,由键和值(key, value)组成蹭用冒号(:)分隔。如tom:29 的键为tom, 对应的值为29。采用键值对,可以更加独立而紧密地表示两者之间的关系。例如tom代表姓名,29代表年龄,实现了紧密一对一关系。从键值对可以看出,字典羽毛球典型的一对一映射关系的数据类型。
2、字典键值设置要求:1)唯一性 :一个字典对象里所有的键必须唯一。2)不可变性。字典在使用过程中明确,不能对元素的键进行直接修改,例如:d5 = {“Tomx”:29, “john”:18} #Tom错写成了Tomx. 不能直接修改。
d3={1:"car", 2:"bus",2:"bus"}
print(len(d3))
print(d3)
d4 = {1:"car", 2:'bus', 2:'train'}
print(d4)
2
{1: 'car', 2: 'bus'}
{1: 'car', 2: 'train'}
3、字典的基本方法
方法名称 | 方法功能描述 |
---|---|
clear | 字典清空 |
copy | 复制生成另外一个字典 |
fromkeys | 使用给你写的键建立新的字典 ,每个键默认对应的值为None |
get | 根据指定键,返回对应值;访问键不存在时,返回None |
items | 以元组数组的形式返回字典中的元素 |
keys | 以可以浏览的类似列表形式返回字典中的键 |
values | 以可以浏览的类似列表形式返回字典中的值 |
pop | 删除指定键的元素,并返回指定键对应的值 |
popitem | 随机返回元素,并删除元素 |
setfault | 当字典中键不存在时,设置键值对;当存在健时,获得键对就的值 |
updata | 利用一个字典更新另一个字典 |
)注意字典内部的结构由哈希表构成,通过唯一的键访问对应的值,所以字典对象没有提供排序功能,字典数据类型是无序的,这是与列表、元组之间的一个明显区别。
2)列表、元组的元素允许重复,字典的元素(其实是键)不允许重复。
字典元素增加
在字典对象中,可以根据需要增加元素。
1、利用赋值给字典增加元素
d1 = {"Tom":2, 'Jim' :5}
d1["Mike"] = 8
d1
{'Tom': 2, 'Jim': 5, 'Mike': 8}
2、利用setdefault()方法给字典增加元素
setdefault()使用格式为D.setdefault(k[,d])。其中,D代表字典对象,k代表新增键,d代表新增键对应的值(如果不提供值,则默认为None)
d1 = {"Tom":2, 'Jim' :5}
d1["Mike"] = 8
d1.setdefault("Alice", 10)
d1
{'Tom': 2, 'Jim': 5, 'Mike': 8, 'Alice': 10}
字典值查找
1、字典 名+【key】查找
d1 = {"Tom":2, 'Jim' :5}
d1["Tom"]
2
2、利用get()方法查找
get()方法使用的格式为D.get(k[,d])。其中D代表字典,k为指定的键,d为键对应的值(可选)。
d1 = {"Tom":2, 'Jim' :5}
d1.get("Jim", 3)
5
字典值的修改
1、利用赋值修改键对应的值
d1 = {"Tom":2, 'Jim' :5}
d1["Tom"] = 9
d1
{"Tom":9, "jim":5}
2、利用update()方法修改键对应的值。 update()方法使用格式为D.update(d1)。其中,D代表要更新的字典 ,d1为提供更新内容的字典。若d1里提供的健在字典D里存在,则更新D里对应的键值;若d1里提供的键在D里不存在,则增加键值对。
d1 = {"Tom":2, 'Jim' :5}
d2 = {"Tom": 9, "Mike" :19}
d1.update(d2)
d1
{'Tom': 9, 'Jim': 5, 'Mike': 19}
d1 = {"Tom":2, 'Jim' :5}
d2 = {"Tom": 9, "Mike" :19}
d1.update(d2)
d1.update({"Jack":13})
d1
{'Tom': 9, 'Jim': 5, 'Mike': 19, 'Jack': 13}