有关于dict(字典)的特性与操作方法

有关于dict(字典)的特性与操作方法

1.字典的特性

语法:

dic = {key1 : value1,key2 : value2,key3 : value3............}

注:字典中key的值不可改变,value的值可以改变;由于字典保存数据使用的是Hash存储方式 故字典无法使用切片方式.

2.字典的操作方法

1.增加

dic = {}

1) dic ["name"] = "伍四六"

#如果字典中没有该key值,则在字典最后加入字典元素,如果存在该key值则会覆盖该key值 所对应的value值

2) dic.setdefault(key , default = None)

#使用此方法时,如果字典中没有过这个key则在字典末尾增加这个字典元素,若key已经存 在则此语句无效

##该方法默认的value值为None,可自行设定value值

2.删除

dic = {"id": 123, "name": 'sylar', "age": 18,"姑姑" : None}

1) dic.pop(key) #删除指定key值与其指定的value值,并返回value值

注:字典中的pop()与列表中的pop()不同,字典中pop()如果不指定key值会报错,而列表中 pop()不指定索引值是默认删除列表最后一个元素

2) del dic[key] #删除指定key值的字典元素

3) dic.popitem() #随机删除一个字典元素,并返回该字典元素

4) dic.clear() #清除字典中所有的元素

3.修改

dic = {"id": 123, "name": 'sylar', "age": 18,"姑姑" : None}

1) 可直接对字典元素的value进行修改

例: dic["姑姑"] = 154

2) dic.update(另一个字典)

#把另一个字典中的内容更新到dic字典中,若key值重复则覆盖其value;若不重复,则新增 字典元素

例:dic = {"id": 123, "name": 'sylar', "age": 18,"姑姑" : None}

dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}

dic.update(dic1)

4.查询

dic = {"id": 123, "name": 'sylar', "age": 18,"姑姑" : None}

1) 直接用key去查询

例: print(dic['name']) #得到123

2) dic.get(key) #获取key值的value,如果key不存在,则返回None

5.其他相关操作

dic = {"id": 123, "name": 'sylar', "age": 18,"姑姑" : None}

1) dic.keys()

#输出一个可通过list()转化为列表的代码段,代码段中记录了字典中所有的key值;可通过 for循环直接输出

例: for key in dic.keys()

print(key)

2) dic.values()

#输出一个可通过list()转化为列表的代码段,代码段中记录了字典中所有的value值;可通 过for循环直接输出

例: for value in dic.values()

print(value)

3) dic.item()

#输出一个可通过list()转化为列表的代码段,代码段中记录了字典中所有的字典元素,所有 的字典元素装在tuple(元组)中构成列表的每一个元素;可通过for循环直接输出

例:print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age',18),("姑姑",None)] 这个东西也是list. 只不过list中装的是tuple

for key, value in dic.items(): # 这个是解构

print(key, value)

6.解构

1) a,b = 1,2 或 (a,b) = (1,2)这类就属于解构

注:解构时要注意数量必须匹配,否则报错

2) 参数解构

#给函数提供实参的时候,可以在集合类型前使用 * 或者 ** ,把集合类型的结构解开,并提 出所有元素为函数提供实参

##非字典类型使用 * 来解构成位置参数

##字典类型使用 ** 来解构成关键字参数

@@@这里注意提取出来的元素数目要与参数的数目一致,不然会报错

例:

def add(x, y): add(4, 5) #正常调用 add((4,5)) #错误调用被当做一个参数 add( * (4,5)) #参数解构 add( * range(1,3)) #与上类似 add( ** {'a' : 5, 'b' : 6}) #解构value add( * {'a' : 5, 'b' : 6}) #解构key

7.字典的嵌套

dic1 = { "name": "汪峰", "age": 18, "wife": { "name": '章子怡', "age": 28 }, "children": ['第一个毛孩子', '第二个毛孩子'], "desc": '峰哥不会告我吧. 没关系. 我想上头条的' }

print(dic1["wife"] ["name"])

print(dic1.get("wife").get("name"))

print(dic1.get("children"))

print(dic1.get("children") [1])

posted @ 2019-06-10 10:16  zy740  阅读(680)  评论(0编辑  收藏  举报