(自学Python)Day08-字典的定义及基本操作
一、字典的定义及创建
"""
字典dict
定义:由一系列键值对组成的可变散列容器。
操作:
创建
添加
定位
删除
遍历
"""
# 1. 创建
# 列表善于存储单一维度数据
list_name = ["亦菲", "杰伦", "紫棋"]
list_age = [20, 23, 35]
list_sex = ["女", "男", "女"]
# 字典善于存储多个维度数据
# 字典名 = {键1:值,键2:值}d
dict_lq = {"name": "刘亦菲", "age": 20, "sex": "女"}
dict_zyj = {"name": "周杰伦", "age": 23, "sex": "男"}
dict_msq = {"name": "邓紫棋", "age": 35, "sex": "女"}
# 字典名 = dict(容器)
# 容器的元素必须能一分为二
dict_info = dict(list_name)
print(dict_info)
二、添加、定位、删除
"""
字典操作
添加
定位
删除
"""
dict_lq = {"name": "刘亦菲", "age": 20, "sex": "女"}
# 2. 添加
# 字典名[键] = 值
dict_lq["money"] = 1000000
# 3. 定位
# 字典名[键]
# --修改
dict_lq["age"] = 26
# --读取
if "age" in dict_lq:
print(dict_lq["age"]) # 如果key不存在会报错
print(dict_lq)
# 4. 删除
# del 字典名[键]
del dict_lq["sex"]
print(dict_lq)
三、遍历
"""
字典操作
遍历
"""
dict_lq = {"name": "刘亦菲", "age": 20, "sex": "女"}
# 所有key
for key in dict_lq:
print(key)
# 所有value
for value in dict_lq.values():
print(value)
# 所有key和value
# for item in dict_lq.items():
# print(item[0])
# print(item[1])
for key, value in dict_lq.items():
print(key)
print(value)
print(list(dict_lq)) # ['name', 'age', 'sex']
print(list(dict_lq.values())) # ['刘亦菲', 20, '女']
print(list(dict_lq.items())) # [('name', '刘亦菲'), ('age', 20), ('sex', '女')]
print(dict([('name', '刘亦菲'), ('age', 20), ('sex', '女')]))
四、字典操作小练习
# 练习:
# 删除台湾现有信息
# 删除陕西新增和现有信息
# 删除浙江现有和累计信息
# 删除广西新增人数保留键(通过键修改值)
del dict_tan_wan["now"]
del dict_shan_xi["new"], dict_shan_xi["now"]
del dict_zhe_jiang["now"], dict_zhe_jiang["total"]
# 练习4:
# 在终端中打印台湾所有键(一行一个)
# 在终端中打印陕西所有值(一行一个)
# 在终端中打印浙江所有键和值(一行一个)
# 在广西字典中查找值是254对应的键名称
for key in dict_tan_wan:
print(key)
for value in dict_shan_xi.values():
print(value)
for key, value in dict_zhe_jiang.items():
print(key)
print(value)
for key, value in dict_guangxi.items():
if value == 254:
print(key)
五、字典推导式
"""
字典推导式
根据其他容器,以简易方式,构建新字典
"""
list_name = ["亦菲", "杰伦", "紫棋"]
list_age = [20, 23, 35]
# dict_result = {}
# for i in range(len(list_name)): # 0 1 2
# key = list_name[i]
# value = list_age[i]
# dict_result[key] = value
# print(dict_result)
dict_result = {list_name[i]: list_age[i] for i in range(len(list_name))}
print(dict_result)
dict_result = {list_name[i]: list_age[i] for i in range(len(list_name)) if list_age[i] > 20}
print(dict_result)
六、字典推导式小练习
"""
练习1:
将两个列表,合并为一个字典
姓名列表["张无忌","赵敏","周芷若"]
房间列表[101,102,103]
{101: '张无忌', 102: '赵敏', 103: '周芷若'}
练习2:
颠倒练习1字典键值
{'张无忌': 101, '赵敏': 102, '周芷若': 103}
"""
list_name = ["张无忌", "赵敏", "周芷若"]
list_room = [101, 102, 103]
# dict_result = {}
# for i in range(len(list_name)):
# # key = list_name[i]
# # value = list_room[i]
# # dict_result[key] = value
# dict_result[list_name[i]] = list_room[i]
# print(dict_result)
dict_result = {list_name[i]: list_room[i] for i in range(len(list_name))}
print(dict_result)
# new_dict = {}
# for k,v in dict_result.items():
# new_dict[v] = k
# print(new_dict)
new_dict = {v: k for k, v in dict_result.items()}
print(new_dict)
七、小结
"""
小结-容器
1. 种类与特征
字符串tuple:存储字符编码,不可变,序列
列表list:存储变量,可变,序列
元组tuple:存储变量,不可变,序列
字典dict:存储键值对,可变,散列
2. Python语言有哪些数据类型?
可变类型:预留空间+自动扩容
例如:list,dict...
优点:操作数据方便(能够增删改)
缺点:占用内存较大
不可变类型:按需分配
例如:int、float、bool、str、tuple...
优点:占用内存较小
缺点:不能适应现实的变化
3. 序列与散列
序列:支持索引切片,定位数据灵活
散列:通过键定位数据,速度最快
4. 语法
列表 字典
创建
列表名 = [数据1,数据2] 字典名 = {键1:值,键2:值}
列表名 = list(容器) 字典名 = dict(容器)
添加
列表名.append(元素) 字典名[键]=值
列表名.insert(索引,元素)
定位
列表名[整数] 字典名[键]
列表名[开始:结束:间隔]
删除
del 列表名[索引或切片] del 字典名[键]
列表名.remove(数据)
遍历
for item in 列表名: for key in 字典:
for i in range(len(列表名)): for value in 字典.values():
for k,v in 字典.items():
"""
#指定字典某个位置的元素
dict_lq = {"name": "刘亦菲", "age": 20, "sex": "女"}
tuple_item = tuple(dict_lq.items())
print(tuple_item[-1])
标签:Day08,name,Python,list,dict,lq,print,基本操作,字典
From: https://blog.csdn.net/qq_43510111/article/details/137242590