测试题:
0.当你听说小伙伴们再讨论“映射”、“哈希”、“散列”或者“关系数组”的时候,事实上他们在讨论什么呢?
字典
1、尝试一下将数据(‘F’:70,“C”:67,“H”:104,“I”:105,“S”:115)创建为一个字典并访问键“C”对应的值是?
1 #元组-->字典 2 tuple1 = tuple((('F',70),('c',67),('H',104))) 3 print(tuple1) 4 dict2 = dict(tuple1) 5 print(dict2) 6 # 正常 7 dict1 =dict((('F',70),('c',67),('H',104))) 8 print(dict1) 9 dict1_c = dict1["c"] 10 print(dict1_c)
2、用方括号(“[]”)括起来的数据我们叫列表,那么使用大括号(“{}”)括起来的数据我们就叫字典,对吗?
我以为对,结果不对。
set--集合
1 dict1 = {1,2,3,4,5} 2 print(type(dict1)) 3 #字典,键值对,映射关系 4 dict2 = {1:"one",2:"two"} 5 print(type(dict2))
3、你如何理解有些东西字典做得到,但“万能的”列表却难以实现呢?
1 brand = ["李宁","耐克","阿迪达斯"] 2 slogan = ["一切皆有可能","Just do it","Impossibale is nothing"] 3 print("耐克的口号是:",slogan[brand.index("耐克")])
列表brand、slogan的索引和相对的值没有任何关系,我们仅通过两个列表的索引值的设置使其产生联系,而字典可以将brand的slogan与brand 在字典中联系起来,产生键值对(映射关系)。eg:
1 dict1 = {"李宁":"一切皆有可能","耐克":"Just do it","阿迪达斯":"Impossibale is nothing"} 2 print("耐克的口号是:",dict1["耐克"])
都是在创建字典。
1 data = "1000,小甲鱼,男" 2 MyDict = { } 3 #字符串分割方法 4 (MyDict["id"],MyDict["name"],MyDict["sex"]) = data.split(",") 5 6 print("Id:"+MyDict["id"]) 7 print("Name:" + MyDict["name"]) 8 print("sex:" + MyDict["sex"])
动动手:
1 print("|---欢迎进入通讯录程序 ---|") 2 print("|---1:查询联系人资料 ---|") 3 print("|---2:插入新的联系人 ---|") 4 print("|---3:删除已有联系人 ---|") 5 print("|---4:退出通讯录程序 ---|") 6 phone_books ={ } 7 def chaxun(): 8 name = input("请输入联系人姓名:") 9 if name in phone_books: 10 print(name+":"+phone_books[name]) 11 else: 12 print("用户不存在") 13 def insert(): 14 name = input("请输入联系人姓名:") 15 if name in phone_books: 16 print("您输入的姓名在通讯录中已存在-->",name+":"+phone_books[name]) 17 t =input("是否修改用户资料(YES/NO):") 18 if t== "YES": 19 num = input("请输入用户联系电话:") 20 phone_books[name]=num 21 else: 22 phone_books[name] = input("请输入用户联系电话:") 23 def pop(): 24 name = input("请输入联系人姓名:") 25 if name in phone_books: 26 del(phone_books[name]) 27 else: 28 print("用户不存在") 29 while 1: 30 temp = int(input("请输入相关指令代码:")) 31 if temp == 1: 32 chaxun() 33 elif temp == 2: 34 insert() 35 elif temp == 3: 36 pop() 37 elif temp==4: 38 break 39 print("|---感谢使用通讯录程序---|")