Python:基础数据类型---dict
Python:基础数据类型---dict
字典:python中非常重要的数据类型,在python中唯一一个映射的数据类型
可变与不可变:
不可变数据类型: int str bool tuple
可变数据类型: list,dict,set
dic ={'name':'alex',
'name_list':['小黑','长江','依米'],
1:{'name':'taibai'},
(1,2,3):'wusir',
True:'真的',
'age':(2134,12),
}
字典的 key:value
key 是唯一的 且 是不可变数据类型
value:任意数据类型
在3.5版本之前,字典是无序的,3.6之后,有序.
print(dic)
#放大量的数据类型,且关联性较强.
新增
方法一: dic['key'] = value
有key 就覆盖,没有key就添加
dic = {"name":"jin","age":18,"sex":"male"} dic['name2'] = '依米' #没有key就在字典的后面进行追加 print(dic) dic['name'] = '王子' #有key 就直接覆盖 print(dic)
方法二:setdeafult
有key不变,没有key才添加. ()括号里面的值可以不写 默认为None
dic = {"name":"jin","age":18,"sex":"male"} dic.setdefault('hobby') print(dic) dic.setdefault('hobby','开船') print(dic) dic.setdefault('name','太白') print(dic)
删除
删 方法一: pop 按key删除,有返回值,
并且如果没有此key,可设置返回值.
dic = {"name":"jin","age":18,"sex":"male"} ret = dic.pop('sex') print(ret) ret = dic.pop('sex1','没有此键') print(ret)
删 方法二: 清空 clear()
dic = {"name":"jin","age":18,"sex":"male"} ret = dic.pop('sex') print(ret) ret = dic.pop('sex1','没有此键') print(ret) dic.clear() print(dic)
删 方法三: del 删除字典,删除键值对
dic = {"name":"jin","age":18,"sex":"male"} del dic print(dic) del dic['name'] print(dic)
删 方法四: popitem() 随机删除 有返回值
dic = {"name":"jin","age":18,"sex":"male"} ret = dic.popitem() print(ret) print(dic)
修改
改 方法一:dic['key'] = value
有key 就覆盖
改 方法二:update 将dic的键值对,覆盖,添加到dic2 中,dic不变
dic = {"name":"jin","age":18,"sex":"male"} dic2 = {"name":"alex","weight":75} dic2.update(dic) print(dic) print(dic2)
查找
查 方法一: dic[] 直接通过Key去查 没有会报错
dic = {"name":"jin","age":18,"sex":"male"} print(dic['name']) print(dic['name2'])
查 方法二: dic.get() 直接通过Key去查 没有不会报错 且 有返回值
dic = {"name":"jin","age":18,"sex":"male"} print(dic.get('name')) print(dic.get('name2')) print(dic.get('name2','没有此键值对'))
其他内容:keys(键) values(值) items(键值对)
dic = {"name":"jin","age":18,"sex":"male"} keys = dic.keys() print(keys,type(keys)) k = list(keys) print(k,type(k)) values = dic.values() print(values) items = dic.items() print(items)
For循环打印字典
for k in dic: #循环打印key print(k) for k in dic.keys(): #循环打印key print(k) for v in dic.values(): #循环打印values print(v) for k,v in dic.items(): #循环打印key + values print(k,v) for k in dic: #循环打印 key + values print(k,dic[k])
字典的嵌套
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:男人 #1: dic['name_list'].append('wusir') print(dic) # 2: dic[1]['python10'].insert(1,'花哥') print(dic) # 3: dic[1]['hobby'] = '男人' print(dic)