1、字典
Python中唯一一个映射的数据类型。可存放大量的数据类型,且关联性强。
可变与不可变
不可变数据类型:int,str,bool,tuple
可变数据类型:list,dict,set(集合)
dic = {'name':'alex','name_list':['小黑','长江','依米']}
字典的键key是唯一的且是不可变数据类型 字典的名称={"key":"value"}
key:是唯一且不可变得数据类型
value任意数据类型
在3.5版本之前,字典是无序的,3.6之后,有序。差异N
2、字典的增删改查
增
dic['key'] = 'value' 含有相同的key则覆盖,没有key就添加。默认添加到最后.
dic.setdeafult('增加的内容')有key不变,没有key才添加.
删
dic.pop('删除的内容') 按照key删除,有返回值
dic.pop('不存在字典的内容','没有此键'),可以通过返回值显示没有此键,不会报错 .唯一一个是返回值的操作
dic.clear()清空字典的内容
del dic 删除字典
del dic['内容']删除键值对
dic.popitem() 随机删除键值,有返回值,3.6版本删除最后一个
改
dic['key'] = 'value' 含有相同的key则覆盖
dic2.update(dic)将dic的键值对覆盖添加到dic2中,类似于安装包得更新,更新原有的key值,添加新的键值对
查
print(dic['name'])没有会报错. 直接输入键值
print(dic.get('name2'))没有会自动显示,返回None 用get来查找,有一个返回值
例如:print(dic.get('name2','没有此键值对')),没有会显示没有此键值对。
3、字典的其他方法
keys=dic.keys() print(dic.keys()) 显示所有的键,可以通过list(keys)转化成列表
keys=dic.values() print(keys)显示所有的值
keys=dic.items() print(keys)显示所有的键和值
for k in dic: print(k) 打印所有键
for v in dic.values(): print(v)打印所有的值
for v in dic.items() print(v)打印所有键和值
for k,v in dic.items() print(k,v)以字符的形式打印所有键和值 a=1 b=2 a,b=b,a 一行代码让ab互换,面试题1
for k,v in dic print(k,dic[k])以字符的形式打印所有键和值
4、字典的嵌套
1 dic = { 2 'name':'金鑫', 3 'name_list':[1,2,3,'李杰'], 4 1:{ 5 'python10':['小黑','萌哥'], 6 '老男孩':{'name':'oldboy','age':56} 7 } 8 }
1 #1,[1,2,3,'李杰']追加'wusir' 2 #2, ['小黑','萌哥'] 小黑 萌哥中间 插入一个花哥 3 #3, {'name':'oldboy','age':56} 添加一个键值对,hobby:男人
1 #[1,2,3,'李杰']追加wusir 2 dic['name_list'].append('wusir') 3 print(dic)
1 #['小黑','蒙哥']中间插入花哥 2 v = dic[1]['python10'] 3 v.insert(1,'花哥') 4 print(dic)
1 #{'name':'oldboy','age':56} 添加一个键值对,hobby:男人 2 dic[1]['老男孩']['hobby'] = '男人' 3 print(dic)
三道题个人的方法
dic = {
'name':'金鑫',
'name_list':[1,2,3,'李杰'],
1:{
'python10':['小黑','萌哥'],
'老男孩':{'name':'oldboy','age':56}
}
}
#1,[1,2,3,'李杰']追加'wusir'
#2, ['小黑','萌哥'] 小黑 萌哥中间 插入一个花哥
#3, {'name':'oldboy','age':56} 添加一个键值对,hobby:男人
dic["name_list"]="1,2,3,李杰,wusie"
print(dic)
dic[1]["python10"]="小黑,花哥,萌哥"
print(dic)
dic[1]["老男孩"]["hobby"]="男人"
print(dic)