python_字典

字典和字符串

1.字典

1.dict

'''
需要保存多个意义相同的数据使用列表,多个意义不同的数据使用字典
容器型数据类型,元素必须是键值对,多个键值对用逗号隔开
字典是有意义的,字典是无序的
'''
dict_1 = {'name': '小明'}
# 空字典
dict_1 = {}
# 无序性
{'s': 3, 'a': 10} == {'a': 10, 's': 3}
#键的唯一性
#值可以是任何数据

2.元素

  1. 元素必须是键值对
  2. 键必须是不可变类型的数据,键是唯一的
  3. 值可以是任何类型的数据

3.增删改查

    1. 查单个 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(键,默认值)(键不存在返回默认值)

  1. 增加、修改

    1. 增加键值对、修改键的值 dict['name']= 'tony'

      #当键存在的时候修改,不存在的时候就添加键值对
      dict1 = {'name': 'stu4', 'age': 17, 'school': '南京大学', '专业': '物联网', 'contact': {'name': '赵六', 'tel': '2833'}}
      dict1['name'] = '小明'		#'name'键存在,所以为修改键的值
      dict1['loc'] = '河北'			#'loc'键不存在,所以增加键值对
      
    2. 添加键值对 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)
      
  2. 删除

    1. 删除键对应的键值对 del dict['name']
    2. 取走键对应键值对的值返回的也是值 dict.pop('name')
  3. 其他相关操作

    1. 判断键是否存在指定的键 in not in

      dict_1 = {'name': '小明'}
      'name' in dict1