通讯录根据首字母查找以此首字母开头的所有联系人:将首字母作为字典的key,以此首字母开头的名字的列表作为value
枚举类型的使用:
for index,name in enumerate(list1):
print('序号:{} 姓名:{}'.format(index,name))
如果列表中有这个key:
#根据key取出列表,将这个name添加到列表中
list1 = result_dict[first_char]
# ==> list1 = result_dict['z']
如果列表中有这个key:
#根据这个key将存放name的列表放入字典中
result_dict[first_char] = [name]
# ==> result_dict['z'] = ['zhangsan']
# -*- coding:utf-8 -*-
#模拟手机通讯录搜索功能
name_list = ['zhangsan','zhangsanfeng','zhaoliu','wangwu','wulong','wanda','lisi','liuyang','luoxiaoxiao','linmeimei','luhan','gaohairui','guojing','huangrong','hanhan']
# 声明空字典
result_dict = {}
# for循环遍历列表,取出每一个名字
for name in name_list:
#取出首字母
first_char = name[0]
#判断字典中是否有first_char这个key
if first_char in result_dict.keys():
#字典中有这个key
#根据key取出列表,将这个name添加到列表中
list1 = result_dict[first_char]
# ==> list1 = result_dict['z']
list1.append(name)
else:
#没有first_char这个key
#根据这个key将存放name的列表放入字典中
result_dict[first_char] = [name]
# ==> result_dict['z'] = ['zhangsan']
print(result_dict)
while True:
s = input('请输入要查找的联系人姓氏首字符:')
#s就是要查找的字典的key
if s in result_dict.keys():
#根据s这个key取出字典中对应的值(列表)
list1 = result_dict[s]
for index,name in enumerate(list1):
print('序号:{} 姓名:{}'.format(index,name))
else:
print('没有查询到结果')