Python容器-3·字典
2024-04-09 17:20:54  阅读数 284

一、字典的定义 dict:

  • dictionary(字典) 是 除列表以外Python之中 最灵活的数据类型
  • 字典同样可以用来 存储多个数据,通常用于存储 描述一个 物体 的相关信息
  • 和列表的区别 :
    • 列表 是 有序 的对象集合
    • 字典 是 无序 的对象集合
  • 字典用 {} 定义
  • 字典使用 键值对 存储数据,键值对之间使用,分隔
    • key 是索引
    • value 是数据
    • 键 和 值 之间使用 : 分隔
    • 键必须是唯一的
    • 值 可以取任何数据类型,但 键 只能使用 字符串、数字或 元组

二、常用方法(功能:增删改查)

序号 分类 关键字 / 函数 / 方法 说明
1 查询 字典[key] 查询key对应的vlaue,key不存在报错
字典.get(key) 查询key对应的vlaue,key不存在,默认值=None
字典.get(key,default) 查询key对应的vlaue,key不存在,默认值=default的值
字典.keys() 返回字典中所有的key(list类型)
字典.values() 返回字典中所有的value(list类型)
字典.items() 返回字典中所有的键值对(list类型)
2 添加/修改 字典[key]=value key在原字典存在,则是修改,否则是添加操作
字典.update(新字典) 新字典key存在是修改,否则是添加操作
3 删除 字典.pop(key) 通过key删除键值对,并返回被删除key对应的value
字典.clear() 清空字典
del 字典[key] 常规删除数据手段,不属于字典
4 统计 len(字典) 统计字典的长度

三、字典相关函数:

  • hash():不是为字典设计,可以判断对象是否可以作为字典的键
  • hash() 可以判断对象是否可以作为字典的键:

四、练习:模拟用户登录信息系统

需求
  • 支持新用户注册(添加),新用户名和密码注册到字典中
  • 支持老用户登陆(查询),用户名和密码正确提示登陆成功
  • 主程序通过循环询问,进行何种操作,根据用户的选择,执行注册或是登陆操作
# 数据源
user = {"zs": "123", "ls": "213"}

# 注册函数
def register():
    # 1.从键盘输入用户名
    # 2. 判断该用户是否可用
    # 2.1 如果被注册:提示用户对应信息
    # 2.2 如果没有注册:输入密码
    # 3. 将用户名密码添加到字典当中
    username = input("请输入用户名:\n")
    if username not in user.keys():
        password = input("请输入密码:\n")
        user[username] = password
        print("注册成功!")
    else:
        print(f"注册失败!用户名{ username}已存在...")

# 登录函数
def login():
    username = input("请输入用户名:\n")
    password = input("请输入密码:\n")
    if (username, password) in user.items():
        print("登录成功")
        print(user.get(username))
    else:
        print("登录失败")

# 显示选择方式行数
def show_menu():
    while True:
        xz = input("0.注册 1.登录 2.退出 请选择(0/1/2) :\n")
        if xz not in ["0", "1", "2"]:
            print("无效输入,请重新输入!")
            continue
        elif xz == "0":
            register()
        elif xz == "1":
            login()
        else:
            break

# 初始化入口
if __name__ == '__main__':
    show_menu()