一、字典的基本知识:
1、无序、可变,可以通过key索引,不可切片。
2、字典的key是不可变数据类型,可以是bool值。
二、字典的创建:
1、 直接创建
2、 系统函数创建:
dict() 的语法
dict_01 = dict() # {}
print(dict_01)
dict_02 = dict(a = '1',b = 2,c = 'p') # 传入关键字 {'a': '1', 'b': 2, 'c': 'p'}
print(dict_02)
dict_03 = dict(zip(['a','b','c'],['1',2,'p'])) # 映射函数 {'a': '1', 'b': 2, 'c': 'p'}
print(dict_03)
dict_04 = dict([('a','1'),('b',2),('c','p')]) # 传入可迭代对象 {'a': '1', 'b': 2, 'c': 'p'}
print(dict_04)
3、字典函数创建: dict.fromkeys(iterable,value) value相同(只能有一个):
dict1 = dict.fromkeys(['aa','bb','cc'],)
dict2 = dict.fromkeys(['aa','bb','cc'],555)
print(dict1)
print(dict2)
三、字典的操作:
1、访问:
dict[key],最好用dict.get(key,default = None)函数和dict.setdefault( , )获取,注意get与setdefault区别。
2、添加:
dict[key] = values
3、删除字典元素:
1、 pop ,必须填写 key,获得 值
2、 popitem,随机删除一个,并且获得 键值对
四、字典的函数:
1、字典常用的系统函数:
、
注意 str() 转化后需要用系统函数 eval()来提取字符串中的数据。
2、dict.keys()、dict.values()、key.items()、 key in dict:
(1):dict.keys()、dict.values()、 key in dict:
注意:.keys()与.values()和.iteams()结果是可迭代对象,可以通过list()、tuple转化为list或tuple来使用。
注意 in 返回 bool值,并且在dict中只能判断key,不能判断value。
dict_04 = dict([('a','1'),('b',2),('c','p')]) # 传入可迭代对象
print(dict_04) # {'a': '1', 'b': 2, 'c': 'p'}
print(dict_04.keys())
# 结果 dict_keys(['a', 'b', 'c']) , 这是一个可迭代对象,可以通过list()、tuple转化为list或tuple来使用。
print(dict_04.values())
print('c' in dict_04) # key in dict 只能判断 key。
(2)key.items():
3、dict.get(key,default)(利用索引取值)、dict.values()、.setdefault( , ):
注意 .get()不改变字典的原始数据,区分与 .setdeafult()
dict_04 = dict([('a','1'),('b',2),('c','p')]) # 传入可迭代对象 {'a': '1', 'b': 2, 'c': 'p'}
print(dict_04.get('c',888888)) # p
print(dict_04.get('jjjj',888888)) # 888888
print(dict_04) # {'a': '1', 'b': 2, 'c': 'p'} ,即只是读取,不改变数据的原始结构。
print(dict_04.setdefault('jjjj',888888)) # key不存在时会追加 键值对
print(dict_04) # 结果 :{'a': '1', 'b': 2, 'c': 'p', 'jjjj': 888888}
4、dict.fromkeys( iterable , value ),生成字典,value相同:
dict1 = dict.fromkeys(['aa','bb','cc'],)
dict2 = dict.fromkeys(['aa','bb','cc'],555)
print(dict1)
print(dict2)
value相同