字典和字符串
1.字典
1.dict
'''
需要保存多个意义相同的数据使用列表,多个意义不同的数据使用字典
容器型数据类型,元素必须是键值对,多个键值对用逗号隔开
字典是有意义的,字典是无序的
'''
dict_1 = {'name': '小明'}
# 空字典
dict_1 = {}
# 无序性
{'s': 3, 'a': 10} == {'a': 10, 's': 3}
#键的唯一性
#值可以是任何数据
2.元素
- 元素必须是键值对
- 键必须是不可变类型的数据,键是唯一的
- 值可以是任何类型的数据
3.增删改查
-
查
- 查单个
dict['name']
(键不存在程序会报错)
#字典[键] dog = {'name': '来福', 'age': 7} dog['name'] #查询狗的名字 class1 = { 'name': 'python2301', 'teacher': {'name': '余婷', 'age': 18, 'tel': '13678192302'}, 'students': [ {'name': 'stu1', 'age': 19, 'school': '清华大学', '专业': '经济', 'contact': {'name': '张三', 'tel': '110'}}, {'name': 'stu2', 'age': 28, 'school': '北京大学', '专业': '大数据', 'contact': {'name': '李四', 'tel': '192'}}, {'name': 'stu3', 'age': 22, 'school': '厦门大学', '专业': '计算机', 'contact': {'name': '王五', 'tel': '920'}}, {'name': 'stu4', 'age': 17, 'school': '南京大学', '专业': '物联网', 'contact': {'name': '赵六', 'tel': '2833'}}, ] } # 1)获取班级名称 print(class1['name']) # 2)获取讲师的名字 print(class1['teacher']['name']) # 3)获取所有学生的名字和对应的学校 for name in range(len(class1['students'])): print(class1['students'][name]['name'], class1['students'][name]['school']) # 4)获取未成年学生的名字 for name in range(len(class1['students'])): if class1['students'][name]['age'] < 18: print(class1['students'][name]['name']) # 5)获取所有学生的联系人的电话 for name in range(len(class1['students'])): print(class1['students'][name]['contact']['tel'])
- 查单个
2.字典.get(键)
(键不存在返回空(None))
3.字典.get(键,默认值)
(键不存在返回默认值)
-
增加、修改
-
增加键值对、修改键的值
dict['name']= 'tony'
#当键存在的时候修改,不存在的时候就添加键值对 dict1 = {'name': 'stu4', 'age': 17, 'school': '南京大学', '专业': '物联网', 'contact': {'name': '赵六', 'tel': '2833'}} dict1['name'] = '小明' #'name'键存在,所以为修改键的值 dict1['loc'] = '河北' #'loc'键不存在,所以增加键值对
-
添加键值对
dict.setdefault('name','tony')
dict1 = {'name': 'stu4', 'age': 17, 'school': '南京大学', '专业': '物联网', 'contact': {'name': '赵六', 'tel': '2833'}} dict1.setdefault('name','tony') #'name'键存在,所以不添加键值对 dict1.setdefault('loc','河北') #'loc'键不存在,所以添加键值对 #检测没有折扣的商品添加折扣值为1 goods_list = [ {'id': 'g001', 'price': 89, 'count': 100}, {'id': 'g001', 'price': 207, 'count': 50, 'discount': 0.9}, {'id': 'g001', 'price': 102, 'count': 33}, {'id': 'g001', 'price': 25, 'count': 897, 'discount': 0.88} ] for goods in goods_list: goods.setdefault("discount",1)
-
-
删除
- 删除键对应的键值对
del dict['name']
- 取走键对应键值对的值返回的也是值
dict.pop('name')
- 删除键对应的键值对
-
其他相关操作
-
判断键是否存在指定的键
in
not in
dict_1 = {'name': '小明'} 'name' in dict1
-