12.python3字典

2020-05-26  本文已影响0人  dwy_interesting

字典的概念和创建

字典概念:
1.使用键值对(key-value)存储,具有极快的查找速度
2.注意:字典是无序的
3.特性:字典的值使用一对{}括起来;字典中的key必须唯一;key必须是不可变的对象;字符串、整数、元组等都是不可变的,可以作为key;list是可变的,不能作为key。

字典创建:
1.创建空字典

dict0={}

2.创建有元素的字典

dict1 = {"chinese":100, "math":98,"history":100}

字典访问

1.直接访问:字典名[key] 没有这个key就会报错

dict1 ={"chinese":100, "math":98,"history":90}
print(dict1["chinese"]) #100
print(dict1["PE"])         #没有这个key会报错,报错内容:KeyError: 'PE'

2.使用get访问:字典名.get(key) 没有这个key会返回None

dict1 = {"chinese":100, "math":98,"history":90}
print(dict1.get(“math”))     #98
print(dict1.get("jojo"))    #没有这个key不会报错,返回None

字典添加

字典添加:
字典名[key] = value,如果key存在字典中就为修改

dict1 ={"chinese":100, "math":98,"history":90}
dict1["PE"] = 99
print(dict1)    #{'chinese': 100, 'math': 98, 'history': 90, 'PE': 99}

#因为一个key对应一个value,所以多次对一个key赋值其实就是修改这个key的值
dict1["PE"] = 88
print(dict1)    #{'chinese': 100, 'math': 98, 'history': 90, 'PE': 88}

字典删除

字典删除:
字典名.pop(key)

dict1 ={"chinese":100, "math":98,"history":90}
dict1.pop("chinese")
print(dict1)    #{'math': 98, 'history': 90}

字典内置函数与方法

内置函数:

1.len(dict) -- 计算字典元素个数,即键的总数。

dict1 ={"chinese":100, "math":98,"history":90}
print(len(dict1))   #3

2.str(dict) -- 输出字典可打印的字符串表示。

dict1 ={"chinese":100, "math":98,"history":90}
print(str(dict1))   #”{"chinese":100, "math":98,"history":90}”

3.type(variable) -- 返回输入的变量类型,如果变量是字典就返回字典类型。

dict1 ={"chinese":100, "math":98,"history":90}
print(type(dict1))     #<class 'dict'>

内置方法:

1.dict.copy() -- 返回一个字典的浅复制

dict1 ={"chinese":100, "math":98,"history":90}
dict2 = dict1.copy()
print(dict2)    #{'chinese': 100, 'math': 98, 'history': 90}

2.dict.update(dict2) -- 把字典dict2的键值对更新到dict里

dict1 = {"chinese":100, "math":98}
dict2 = {"history":90}
dict1.update(dict2)
print ( dict1)  #{'chinese': 100, 'math': 98, 'history': 90}

3.dict.items() -- 以列表返回可遍历的(键, 值) 元组数组

dict = {"chinese":100, "math":98}
print (dict.items())              #dict_items([('chinese', 100), ('math', 98)])

4.dict.keys() -- 以列表返回一个字典所有的键

dict =  {"chinese":100, "math":98}
print(dict.keys())       #dict_keys(['chinese', 'math'])

5.dict.values() -- 以列表返回字典中的所有值

dict =  {"chinese":100, "math":98}
print (list(dict.values())) #dict_values([100, 98])

字典与列表的对比

和list比较:
1、字典查找和插入的速度极快,不会随着key-value的增加变慢;列表查找和插入的速度会随着数据量的增加而变慢
2、字典需要占用大量的内存,内存浪费多,(多存了key的部分);列表占用空间少,浪费内存少

上一篇下一篇

猜你喜欢

热点阅读