Learning Diary for Python - 7
一、字典
1.字典和列表的选择
需同时保存多个数据的时候,如果多个数据意义相同(种类单一)使用列表;意义不同(种类不单一)使用字典
2.认识字典(dict)
-
数据类型:容器型
-
容器标志:{}
-
键值对格式:键:值
-
特征:
- 字典的数据必须全部为键值对
- 必须用{}作为容器标志
- 多个键值对用:隔开
-
特点
- 字典可变(支持增删改查)
- 字典无序(不支持下标,元素顺序不影响结果)
-
空字典:{}
-
对元素的要求
-
键的要求
- 键必须是不可变的类型的数据(数字、字符串、布尔、元组等)
- 键必须是唯一的
dict={ 'a':10,'b':20,[1,2]:50} #报错 dict={ 'name': '张三', 30}#报错 print({ 'a': 10, 'b': 20} == { 'b': 20, 'a': 10}) # True #键是唯一 重复以后面的为准 dict4 = { 'a': 10, 'b': 20, 'c': 30, 'a': 100} print(dict4) # {'a': 100, 'b': 20, 'c': 30}
-
值的要求
- 没有要求
-
3.基本操作
#查单个(一次获取一个值)
#语法1:字典[键] - 获取字典中指定键对应的值
dog={
'name':'旺财','age','3'}
print(dog['age'])
#语法2:字典.get(键,默认值) - 获取字典中指定键对应的值,如不存在,返回默认值
print(dog.get('age')) #3
print(dog.get('date',1))#1
#区别
print(dog['data']) 报错
print(dog.get('data')) 返回空值
#语法一
for 键 in 字典:
pass
#语法二
for 键,值 in 字典.items():
pass
#e.g.
stu = {
'name': '小明', 'gender': '男', 'age': 18, 'score': 100, 'education': '专科'}
for x in stu:
print(x, stu[x])
for x, y in stu.items():
print(x,y)
-
增/改——添加键值对
-
字典[键]=值
cat = { 'name': '花花', 'breed': '加菲'} #增 cat['color']='白色' print(cat) #{'name': '花花', 'breed': '加菲', 'color': '白色'} #改 cat['name']='小白' print(cat) #{'name': '小白', 'breed': '加菲'}
-
字典.setdefault(键, 值)——添加键值对(如果键不存在就添加键值对,如果键存在不动字典)
cat = { 'name': '花花','breed': '加菲'} cat.setdefault('color', '白色') print(cat) #{'name': '花花', 'breed': '加菲', 'color': '白色'} cat.setdefault('breed', '美短') print(cat) #{'name': '花花', 'breed': '加菲'}
-
-
删
-
del字典[键]——删除键值对
cat = { 'name': '小白', 'breed': '加菲', 'color': '白色', 'age'
-