定义:字典是Python中唯一内建的映射类型,字典中的值并没有特殊的顺序,但是都存储在一个特定的键(Key)里。键可以是数字、字符串、甚至元组
- 通过指定的键从字典访问值。
- 列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
- 键必须独一无二,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
题目:使用字典来存储联系人及电话号码,并实现查询功能
初始代码:
# -*- coding:utf-8 -*-
#创建字典
TelDict={
"小妖精":17000000001,
"老妖怪":17000000010,
}
print "请输入联系人姓名"
name=raw_input()
print "请输入对应号码"
tel=raw_input()
print "请输入查询姓名"
name=raw_input()
tel=TelDict(name)
print TelDict.get(tel)
错误之处:
1、print TelDict.get(tel) 修改为 print TelDict.get(name)
- get用来查询的键以及自定义值(默认为None)做参数,返回键对应的值。若不存在键则返回自定义值。
- get有两个参数,第一个是要查询的键,第二个是如果查询不到该键返回的值,默认是None
2、tel=TelDict(name) 修改为 tel=TelDict[name]
字典的基本操作为:
- d[k]返回关键值到键k上的值;
- d[k]=v将值v关联到键k上;
- del d[k]删除键为k的项
3、第10行,输入对应号码后,还没有存到字典中
应该接着 TelDict[name]=tel
- tel=TelDict[name]
这个意思是,我现在有个变量叫做tel,我把TelDict字典里以name做键的值赋给了它。
- TelDict[name]=tel
意思是,现在有个字典叫做TelDict,我把tel的值赋给了字典里以name作为键的值
4、编码建议:写字典的时候,反大括号和字典变量名开头对齐,为了美观。
修改后代码:
# -*- coding:utf-8 -*-
#创建字典
TelDict={
"小妖精":'17000000001',
"老妖怪":'17000000010',
}
print "请输入联系人姓名:"
name=raw_input()
print "请输入对应号码:"
tel=raw_input()
TelDict[name]=tel
print "请输入查询姓名:"
name=raw_input()
print "查询的号码为:"
print TelDict.get(name,"查询不到")
运行结果如下: