字典是一组{}大括号括起来的键、值组合。
键(key)
值(value)
映射
A B
|---| |---|
| a |-->| m |
| b |-->| n |
| c |-->| p |
| d |-->| q |
|---| |---|
创建和访问字典
>>> dict1 = { '李宁':'一切皆有可能','耐克':'Just do it','阿迪达斯':'Impossible is nothing','小伙子':'看好你哟'} #使用{}直接创建
>>> print('小伙子的口号是:',dict1['小伙子'])
小伙子的口号是: 看好你哟
>>> dict3 = dict((('Lilie',98),('Han×××',99),('Lucy',97),('Lily',99))) #使用dict()函数键值对创建
>>> dict3
{'Lilie': 98, 'Han×××': 99, 'Lily': 99, 'Lucy': 97}
>>> print(dict3['Han×××']) #查找键值
99
>>> dict4 = dict(Python='牛逼的语言',php='最好的语言') #使用dict()函数赋值方式创建字典
>>> dict4
{'Python': '牛逼的语言', 'php': '最好的语言'}
>>> dict4['php']
'最好的语言'
>>> dict4['php'] = '最好的吗?呵呵' #修改值
>>> dict4
{'Python': '牛逼的语言', 'php': '最好的吗?呵呵'}
>>> dict4['C'] = '基础的基础' #新增键值
>>> dict4
{'C': '基础的基础', 'Python': '牛逼的语言', 'php': '最好的吗?呵呵'}
------------------分割线,哈哈哈--------------------
课后作业:
0.当你听到小伙伴们在谈论“映射”、“哈希”、“散列”或者“关系数组”的时候,事实上他们就是在讨论什么呢?
全都是字典
1.尝试一下将数据('F':70,'C':67,'h':104,'i':105,'s':115)创建为一个字典并访问键‘C’对应的值。
dict5 = dict((('F',70),('C',67),('h',104),('i',105),('s',115)))
>>> dict5['C']
67
>>> print(dict5['C'])
67
2.用方括号‘[’括起来的数据我们叫列表,那么使用大括号‘{’括起来的数据我们就叫字典,对吗?
不对。用大括号括起来的数据如果没有映射关系则不是字典
3.你如何理解有些事情字典做得到,但是“万能的”列表却难以实现?
数据之间有关联关系,如姓名和分数,如果用列表得定义两个列表。使用姓名查找分数需要在两个列表中操作,效率低下。使用字典却方便很多
4.下边这些代码,他们都在执行一样的操作吗?你看得出差别吗?
>>> a = dict(one=1,two=2,three=3)
>>> b = {'one':1,'two':2,'three':3}
>>> c = dict(zip(['one','two','three'],[1,2,3]))
>>> d = dict([('two',2),('one',1),('three',3)])
>>> d = dict({'three':3,'one':1,'two':2})
一样的,都是创建字典{'one': 1, 'two': 2, 'three': 3}
5.如图,你可以推测出打了马赛克部分的代码吗?
data = "1000,小甲鱼,男"
MyDict = {}
(MyDict['id'],MyDict['name'],MyDict['sex']) = data.split(',')
print("ID:" + MyDict['id'])
print("Name:" + MyDict['name'])
print("Sex:" + MyDict['sex'])
分别把data里面的值分片赋给字典MyDict里面的键。data.split(',')
----------------------分割线,哈哈哈---------------------
动动手:
0.尝试利用字典的特性编写一个通讯录程序吧。
CONTACTORS = {}
def QUERY_CONTACTOR():
NAME = input('请输入要查询的联系人姓名:')
if NAME not in CONTACTORS:
print('没有此用户!!!')
else:
print(NAME + ':' + CONTACTORS[NAME])
def NEW_CONTACTOR():
NAME = input('请输入新增的联系人姓名:')
while NAME in CONTACTORS:
print('您输入的姓名在通讯录中已存在 -->>',end=' ')
print(NAME +':'+ CONTACTORS[NAME])
CHANGE = input('是否修改用户资料(YES/NO):')
if ( CHANGE == 'YES'):
TEL = input('请输入新的用户联系电话:')
CONTACTORS[NAME] = TEL
return
else:
print('感谢使用,再见!!!')
return
TEL = input('请输入用户联系电话:')
CONTACTORS[NAME] = TEL
def DEL_CONTACTOR():
NAME = input('请输入要删除的联系人姓名:')
if NAME in CONTACTORS:
CONTACTORS.pop(NAME)
else:
print('没有此联系人!!!')
while 1:
print('|---------------------------|')
print('|---欢迎进入通讯录程序---|')
print('|--- 查询联系人资料:1---|')
print('|--- 插入新的联系人:2---|')
print('|--- 删除已有联系人:3---|')
print('|--- 退出通讯录: 4---|')
NUM = int(input('请输入相关指令代码:'))
if NUM == 1:
QUERY_CONTACTOR()
continue
elif NUM == 2:
NEW_CONTACTOR()
continue
elif NUM == 3:
DEL_CONTACTOR()
continue
elif NUM == 4:
print('|---感谢使用通讯录程序---|')
break
else:
print('请输入正确的指令!')
continue
转载于:https://blog.51cto.com/wszzdanm/2169912