字典属于可变类型, 但是元素顺序不重要,也是python编程常用的一种内置数据类型
字典定义
字典类型数据每一项由key
与val
对组成,key
称为键名,val
称为键值,多个键值对之间用,隔开
# 空字典
dicts = {}
print(dicts)
# 字典类型数据每一项由key
与val
对组成,key
称为键名,val
称为键值,多个键值对之间用,隔开
# dicts = {"key":val, "key2":val2}
# 举例
luxp = {"name": "luxp", "age": 10}
print(luxp)
wxp = {"name":"wxp", "age": 12}
print(wxp)
字典键名要求
# 字典中的key不能重复
# 重复键名,只会保留一个
dicts = {1: "A", 1: "B"}
# 键名必须为不可变类型:数字,字符串,元组
# 字符串键名
dicts = {"name": "luxp", "age":28}
# 数字键名:
orders_status = {1: "success", 2: "wait_pay", 3: "fail"}
# 元组键名
# 127.0.0.1 - IP地址
# 22、80 - 端口
# ip + 端口号 就可以访问一台特定的服务器上运行的程序
server_dicts = {("127.0.0.1", 22): "ssh_server1",
("127.0.0.1", 80): "web_server2"
}
字典取值
字典通过key读取成员值或者重新赋值
# 获得orders_status 状态1的字符串表示
message = orders_status[1]
print(message)
# 获得 "127.0.0.1", 22所提供的服务名称
service_name = server_dicts[("127.0.0.1", 22)]
print(service_name)
students_dict = {"students":[luxp, wxp], "city":"SUZHOU"}
students_list = students_dict['students']
# 如果键名不存在,会报错
college = students_dict['college']
# 为了防止报错,可以使用字典内置的get方法
# dict.get(key, default)
college = students_dict.get('college', None)
print(college)
# 向字典中添加一个新key, college
students_dict['college'] = "MIT"
print(students_dict)
#修改city信息
students_dict['city'] = "NEW YORK"
字典的对象方法
# 字典的对象方法
dicts = {"name": "平哥", "sex": "男", "age": 10}
# 提取键名
keys = dicts.keys()
# 提取键值
values = dicts.values()
# 获取由元组组成的条目列表
items = dicts.items()
# 根据另一个字典数据更新字典
dicts2 = {"name": "luxp"}
dicts.update(dicts2)
# 从字典里弹出一项
name = dicts.pop("name")
print(name)
print(dicts)
语法练习
# 一个班级有3个学生,名字、年龄分别是:
# 平哥, 20
# 吉多,28
# 乔布斯,25
# 用列表与字典的组合来表示这一组数据
pingge = {"name": "平哥", "age": 20}
guido = {"name": "吉多", "age": 28}
jobs = {"name": "乔布斯", "age": 25}
students = [pingge, guido, jobs]
# 有一组商品如下
# 红色,材料为布的有:双人沙发,单人沙发
# 绿色,材料为布的有:窗帘,桌布
# 黄色, 材料为毛的有:毛毯, 地毯
# 任务1: 使用字典来组织数据
# 提示使用元组、列表作为键值对来定义字典
# 任务2:
# 获取黄色、材料为毛的所有商品
讨论区