小甲鱼Python3学习笔记之第二十五讲(仅记录学习)

第二十五讲:字典:当索引不好用时1

一、知识点:

0.字典是python中唯一的映射类型。

1.字典包含两个要素:键(key)和值(value)他们是成对出现的,用大括号括起来,多对存在时用逗号隔开。

2.可以用dict()直接创建字典,如dict1 = dict((('a',90),('b',91),('c',92),('d',93))),创建出来的字典dict1的形式为{'a': 90, 'b': 91, 'c': 92, 'd': 93}

3.dict2 = dict(key1='value1',key2='value2'),则最后的形式为{'key1': 'value1', 'key2': 'value2'}。Python的dict是无序的。

4.改变字典中的某个值dict2['key']='value',插入的方法类似。

----------------------------------------------------我是一条分割线------------------------------------------------------

二、课后作业:

0.当你听到小伙伴们在谈论“映射”、“哈希”、“散列”或者“关系数组”的时候,事实上他们就是在讨论什么呢?

字典,都是一个概念。

1.尝试一下将数据('F':70,'C':67,'h':104,'i':105,'s':115)创建为一个字典并访问键‘C’对应的值。

>>> dict1 = dict((('F',70),('C',67),('h',104),('i',105),('s',115)))
>>> dict1
{'F': 70, 'C': 67, 'h': 104, 'i': 105, 's': 115}
>>> dict1['C']
67
>>> print(dict1['C'])
67

2.用方括号‘[’括起来的数据我们叫列表,那么使用大括号‘{’括起来的数据我们就叫字典,对吗?

错。用大括号括起来的数据如果没有映射关系不能称之为字典。

3.你如何理解有些事情字典做得到,但是“万能的”列表却难以实现?

>>> brand = ['李宁','耐克','阿迪达斯','鱼C工作室']
>>> slogan = ['一切皆有可能','Just do it','Impossible is nothing','让编程改变世界']
>>> print('鱼C工作室的口号是:',slogan[brand.index('鱼C工作室')])
鱼C工作室的口号是: 让编程改变世界
>>> dict1 = {'李宁':'一切皆有可能','耐克':'Just do it','阿迪达斯':'Impossible is nothing','鱼C工作室':'让编程改变世界'}
>>> print('鱼C工作室的口号是:',dict1['鱼C工作室'])
鱼C工作室的口号是: 让编程改变世界

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}。说明python的dict()是无序的,即dict的遍历顺序与初始化顺序是不一样的。
 

5.如图,你可以推测出打了马赛克部分的代码吗?

分别把data里面的值分片赋给字典MyDict里面的键。data.split(',')

----------------------------------------------------我是一条分割线------------------------------------------------------

三、动动手:

0.尝试利用字典的特性编写一个通讯录程序吧。

print('欢迎进入通讯录程序!')
print('1.查询联系人')
print('2.插入联系人')
print('3.删除联系人')
print('4.退出通讯录')

contact = {'张三':123,'李四':456,'王五':789,'赵六':987}

while 1:
    temp = int(input('请输入你的选择:'))

    if temp == 1:
        name = input('请输入要查询的姓名:')
        if name in contact.keys():
            print(contact[name])
        else:
            print('该联系人不在通讯录中!')

    if temp == 2:
        name = input('请输入要添加的联系人姓名:')
        num = int(input('请输入联系人电话:'))
        contact[name] = num

    if temp == 3:
        name = input('请输入要删除的联系人姓名:')
        if name in contact.keys():
            contact.pop(name)
        else:
            print('该联系人不在通讯录中!')

    if temp == 4:
        break

----------------------------------------------------我是一条分割线------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/huashu2017/article/details/81032319