请稍候,加载中....

字典类型

字典属于可变类型, 但是元素顺序不重要,也是python编程常用的一种内置数据类型

字典定义

字典类型数据每一项由keyval对组成,key称为键名,val称为键值,多个键值对之间用,隔开

# 空字典
dicts = {}
print(dicts)

# 字典类型数据每一项由keyval对组成,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:
# 获取黄色、材料为毛的所有商品

Python学习手册-