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)

  

 

 
 


posted @ 2018-10-07 00:24  是我是我还是我  阅读(218)  评论(0编辑  收藏  举报