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)