字典的概念和创建
字典概念:
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的部分);列表占用空间少,浪费内存少
网友评论