(自学#Python)Day08-字典的定义及基本操作

(自学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])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值