1.什么是字典(dict)
- 字典是python内置的一个容器型数据类型:可变(支持增删改)、无序(不支持下标操作)
- {键1:值1, 键2:值2,键3:值3,...}
- 键(key):a.不可变 b.唯一
- 值(value):和列表元素要求一致
注意:键值是成对出现的;字典存数据,实质存的是值,键是值的索引。
dict1 = {'a': 100, 'b': 'abc', 'c': [1, 2], 'd': {'a': 100}}
print(dict1)
dict1 = {'a': 100, 'b': 'abc', 'a': [1, 2]}
print(dict1) # {'a': [1, 2], 'b': 'abc'}
2.什么时候用字典
- 如同时保存多个数据是具有相同意义的数据,用列表
- 如果同时保存多个数据的意义不同,就使用字典
3.增删改查
3.1查
方法一:dict[key]
注意:key不存在的时候会报错
dog1 = {'name': '大黄', 'type': '中华田园犬', 'color': 'yellow', 'age': 3}
print(dog1['type'])
# print(dog1['gender']) # KeyError: 'gender'
方法二:dict.get(key)
注意:如果key值不存在,则返回None
- dict.get(key, 默认值) (如果key不存在返回指定默认值)
print(dog1.get('color'))
print(dog1.get('gender'))
print(dog1.get('gender', '公狗'))
注意:直接遍历字典拿到是key
dog1 = {'name': '大黄', 'type': '中华田园犬', 'color': 'yellow', 'age': 3}
for key in dog1:
print(key, dog1[key])
3.2增/改 - 添加键值对
1) dict[key] = value
- 当key不存在的时候就是添加键值对;当key存在的时候,就是修改key对应的值
film = {'name': '流浪地球', '主演': '吴京', 'time': '2019-2-5'}
film['票房'] = '40亿'
print(film)
film['time'] = '2019-2-6'
print(film)
film.setdefault('a', 10)
print(film)
2) dict.setdefault(key, value)
film.setdefault('name', '战狼2')
print(film)
3.3 删 - 删除键值对
1)del dict[key]
film = {'name': '流浪地球', '主演': '吴京', 'time': '2019-2-5'}
del film['time']
print(film)
2)dict.pop(key)
name = film.pop('name')
print(film, name)
4.相关运算符
1)只支持比较运算符
print({'a': 10, 'b': 20} == {'b': 20, 'a': 10}) # True
2)in / not in- key in dict (判断字典中是否存在某个key对应的键值对)
student = {'name': '小明', 'age': 20, 'tel': '16362738493'}
print('小明' in student) # False
print('name' in student) # True
3) len(), max(), min()
- dict() - 本身是一个序列,序列中元素是小序列,小序列必须有且只有2个元素,而且这个2个元素中的第一个元素是不可变的
- 注意:取最大值最小值是取key的最大值和最小值;字典转列表/元祖的时候,是将字典的key取出来作为列表/元祖的元素
print(len(student))
print(max(student))
print(dict(['cb', ['a', 100], [1000, [1]] ]))
print(list(student))
#3
#tel
#{'c': 'b', 'a': 100, 1000: [1]}
#['name', 'age', 'tel']
5.相关方法
1)dict.clear() --清空字典
student.clear()
print(student)
2)字典.copy() - 复制字典的内容,产生一个新的字典
student = {'name': '小明', 'age': 20, 'tel': '16362738493'}
student1 = student.copy()
student1['name'] = '小花'
print(student)
3) dict.fromkeys(序列,值) - 创建一个新的字典,将序列中的元素作为新字典的key,指定的值作为每个key对应的值
new_dict = dict.fromkeys(['name', 'age', 'gender'], None)
print(new_dict)
person_keys = ['name', 'age', 'gender']
person1 = dict.fromkeys(person_keys, None)
person2 = dict.fromkeys(person_keys, None)
4) 字典1.update(字典2) - 将字典2中的键值对添加到字典1中
dict1 = {'a': 10, 'b': 20, 'z': 100}
dict1.update({'c': 30, 'b': 200})
print(dict1)
网友评论