日常鸡汤:
曾经求学所受的苦,将来都会成为建筑美好生活的一块砖
一、字典的介绍:
字典(dict)是python中唯一的一个映射类型,以{}括起来的 键值对 {key:value},在此 Key 是唯一的,切必须是可以哈希的,Value没有要求,可以是任何数据类型。为什么要有字典,因为在查询的过程当中,当列表或者元组过于庞大的时候,靠索引定位会显的特别效率低,所以用Key:Value 键值对的形式来寻找会更好一些。
二、字典的基本操作
1.增:
1 # 先定义一个字典 2 3 dic = {} 4 5 dic['name'] = 'abc' # 向字典中添加一个 'name':'abc' 6 7 # 还有一种方法就是使用setdefault 8 9 dic.setdefault('李嘉诚') # 向字典添加一个 Key为:'李嘉诚' Value为None 10 11 dic.setdefault('a','b') # 向字典添加一个键值对: 'a':'b' 12 13 14 # 当使用setdefault的时候,使用了一个已经存在的Key值,则setdefault不会起作用 15 16 dic.setdefault('a','2') # 这时候这个字典中键值对还是为 'a' : 'b'
2.删
del dic[key] 删除指定的key的键值对,key必须要存在,否则会报错。
pop(key,default) 删除指定的key的键值对,如果key不纯在,如果default有值,则返回default,如果没有值,则报错,有返回值 Value
popitem() 删除以key为主导的升序的第一个键值对,返回一个元组(key,value) ,如果字典为空,则会报错
clear() 清空字典
1 dic = {'a':'b','c':'d','e':'f'} # 创建一个字典 2 3 del dic['a'] 4 print(dic) # 输出 {'c': 'd', 'e': 'f'} 5 6 dic.pop('c') # 用pop方法删除key为‘c’的键值对 7 print(dic) # 输出{'e': 'f'} 8 9 ret = dic.pop('c',666) # 删除一个字典没有的值,会返回666 10 print(ret) # 输出 666 11 12 raw = dic.popitem() # 删除最后一对键值对 13 print(raw) # 输出('e', 'f') 14 15 dic.clear() # 清空操作 16 print(dic) # 返回{}
3.改
改,只能修改Value的值,不能修改Key
修改单个键值对: dic[key] = value
批量修改键值对:olddic.update(newdic)
1 d = {'name':"sz",'age':18} # 创建一个字典 2 print(d) # 输出为{'name': 'sz', 'age': 18} 3 d['age']=20 # 通过赋值操作更改 4 print(d) # 输出{'name': 'sz', 'age': 20} 5 d['a'] = 'b' # 加入key为不存在的值 6 print(d) # 输出{'name': 'sz', 'age': 20, 'a': 'b'} 则为增加操作 7 8 d1 = {"age":14,'add':'jia'} # 定义一个新的列表 9 d.update(d1) # 把d进行更新。 10 print(d) # {'name': 'sz', 'age': 14, 'a': 'b', 'add': 'jia'} 11 # 在更新过程中,如果有相同的键值对,则进行赋值,如果没有,则新添
4.查
简单查询
dict[key] 直接通过key值进行查询,如果没有相对应的key值,则会报错
get(key,default) 通过key值进行查询,返回相对应key的value值,如果没有对应的值,不会报错,会返回一个none或者指定的值
setdefault(key,default) 通过key值查询,返回对应的value值,如果不存在则新增一个键值对
1 d = {'name':'lx','age':18} # 定义一个字典 2 print(d['name']) # 直接查询 3 4 #get() 5 v = d.get("age") # 查询key为‘age’的键值对 6 print(v) # 输出18 7 b = d.get("ac",660) # 如果查询的key不存在,返回660 8 print(b) # 输出660 9 10 # setdefault 11 c = d.setdefault("age") # 查询key为‘age’ 12 print(c) # 输出18 13 e = d.setdefault('age1',2234) # 如果查询没有的key 14 print(d) #输出 {'name': 'lx', 'age': 18, 'age1': 2234} 新增
其他操作
dict.key() 获取所有的键
dict.value() 获取所有的值
dict.items() 获取所有的键值对 返回的是一个元组
1 d = {'name':'chamster','age':18} 2 print(d.keys()) # 输出dict_keys(['name', 'age']) 3 print(d.values()) # 输出dict_values(['chamster', 18]) 4 print(d.items()) # 输出dict_items([('name', 'chamster'), ('age', 18)])
注意在python2.x的版本中,如果中间对字典进行了增加或者删除的操作,则dict.key()等的值不会改变
在python3.x的版本中,则会相对应的发生改变
5.遍历key和value的值
1 d = {'name':'lx','age':18,'add':'sh'} 2 for i in d.keys(): # 遍历 key 遍历value操作一样 3 print(i) 4 print(d[i]) 5 6 for i in d.items(): 7 print(i[0]) 8 print(i[1]) 9 10 for k,v in d.items(): # 通过解包进行遍历 11 print(k,v)
6.字典的嵌套
通过索引就可访问字典中的字典,没什么大的难点