第12天:python字典进阶

0 阅读3分钟

学习目标:掌握字典嵌套,存储更丰富的联系人信息。

  • 练习任务

    1. 改造字典,使每个联系人的值也是一个字典,包含 phone, email, address 等字段。例如:

      contacts = {
          '张三': {'phone': '13800138000', 'email': 'zhangsan@example.com', 'address': '北京'},
          '李四': {'phone': '13912345678', 'email': 'lisi@example.com', 'address': '上海'}
      }
      
    2. 实现添加联系人(包含多个信息)、修改联系人的某个字段、删除联系人。

    3. 实现查询功能:输入姓名,显示该联系人的所有信息。

    4. 使用嵌套循环打印所有联系人的详细信息(格式整齐)。

    5. 扩展:允许用户选择更新某个具体字段。


字典内置函数和方法

len函数

计算字典元素的个数,就是键的个数

image.png

str函数

输出字典,以字符串形式表示

image.png

copy方法

浅复制一个字典
浅拷贝:拷贝父对象,不拷贝子对象
深拷贝:即拷贝父对象,又拷贝子对象\

image.png

fromkeys方法

创建一个新字典,以val为新字典的初始值
语法:dict.fromkeys(seq[,value])
seq:字典键值列表 value:设置键序列对应的值(可选)默认为None

image.png

get方法

返回指定键的值,如果该键不存在时,返回默认值。如果没有指定默认值则返回None
语法:dict.get(key[,value]) key:字典中要查找的键
value:如果键值不存在时,返回该默认值。

image.png

key in dict

查找键是否在字典当中
返回true键存在,返回false键不存在

image.png

items方法

以列表返回一个字典的视图对象

image.png

keys方法

以列表返回一个字典键的视图对象

image.png

values方法

以列表返回一个字典值的视图对象

image.png

setdefault方法

返回指定键的值,如果不存在会添加键并将其设置为默认值(None)\

image.png

popitem方法

返回并删除字典中最后一对键值

image.png

练习任务

改造字典,使每个联系人的值也是一个字典,包含 phone, email, address 等字段.

contacts = {
'张三': {'phone': '13800138000', 'email': 'zhangsan@example.com', 'address': '北京'},
 '李四': {'phone': '13912345678', 'email': 'lisi@example.com', 'address': '上海'}
 }

实现添加联系人(包含多个信息)、修改联系人的某个字段、删除联系人。

contacts['王五']={'phone':'1394326457','email':'324567@qq.com','address':'深圳'}

实现查询功能:输入姓名,显示该联系人的所有信息。

name=input('请输入姓名: ')
print(contacts.get(name,'该姓名没有记录'))

使用嵌套循环打印所有联系人的详细信息(格式整齐)。

for name,info in contacts.items():
   print(f'{name}:')
   for k,v in info.items():
       print(f'{k}:{v}')

扩展:允许用户选择更新某个具体字段。

while 'true':
   asm = input("请输入要更新的姓名:")
   if asm not in contacts:
       contacts[asm] = {}
   asm1=input("请输入要更新的字段:")
   asm2=input("请输入要更新{asm1}的内容:")
   contacts[asm][asm1]=asm2
   print(contacts)
   yn_input=input("是否继续输入(y是n否):")
   if yn_input == 'n':
       break