python学习之数据类型—字典dict

字典:dict

1、字典是python中唯一的一个映射类型,以{}括起来的价值对组成;

2、字典中key是唯一的,在保存的时候,根据key来计算出一个内存地址,如何将value放在这个内存中,这种称为hash算法;

3、字典中的key必须是可hash的即(不可变的数据类型str,int,tuple,bool)

4、字典中的value可以存任意数据类型

5、字典也是无序的,故没有通过索引找值一说,只能通过key找value

语法:

dict = {key:value,……}

增:

1、直接添加

dic ["BeiJing"] = "政治中心"  

注:如果字典中无”BeiJing“这个key,则新增,如有则改变对应的value值为新值

2、setdefault(key,value)方法添加,value可不写,默认为none

dic .setdefault("china")   ---> {"china":None}

dic .setdefault("china","中国")   --->{"china":None},一旦通过setdefault方法添加了key,之后就无法改变改key对应的值

删:

1、指定key值来删除 

ret = dict.pop(key)    有返回值,返回的是删除的值,同list 一样,str与tuple是不可变数据类型故无pop方法

del  dict    删除字典对象

del  dict[key]  按key来删除,无返回值,为None 

2、随机删除dict.popitem()

ret = dict.popitem()    #随机删除字典中的元素,返回一个包含键值对的tuple  (key,value)

解构:

k,v = dict.popitem()

print(k,v)

3、清空字典

dict.clear()

改:

1、直接通过key赋予新值

dict[key] = new_value

2、两个字典合并成一个 dict_to.update(dict_from)

dict3 = {"name": "sun", "age": 30}
dict4 = {"name": "xiu", "age": 30, "hobby": "play_tv"}
dict3.update(dict4) # 将dict4更新到dict3中,如果dict3中key存在,对应value值将覆盖,如果不存在,则新增

查:

1、通过key查value

dict[key] 如key不存在,则报错

dict.get(key,自定义返回值)  如key不存在,默认返回None,也可自定义

2、查询字典中所有的keys              dict_keys(['name', 'age', 'hobby'])

for i in dict.keys:

  print(i)

3、查询字典中所有的values          dict_values(['xiu', 30, 'play_tv'])

for i in dict.values:

  print(i)

4、查询字典中所有的元素items    dict_items([('name', 'xiu'), ('age', 30), ('hobby', 'play_tv')])

for i in dict.items:

  print(i)   #i 是一个元组

猜你喜欢

转载自www.cnblogs.com/sunxiuwen/p/9141660.html