1.字典的用途

普通的图书我们比较适合从头到尾的进行顺序阅读,但是要是为了能够尽快翻到自己想要的页码,这听起*有点像列表但是字典却能够让你轻松地找到特定的单词(键)以及获悉它的定义(值),我们举个例子

name = ['Mayun','Mahuateng','Liyanhong','zhouenlai']

numbers = ['1222','3243','5657','5454']

如果我们想知道**(zhouwenlai)*的电话,我们会这样*调用 :numbers[name.index('zhouernlai')],要找到***的索引,然后再numbers列表里找到对应索引的位置,输出电话号码,方案可行但是效率太低

如果我们有一个方法比如phonebook('zhouenlai')就直接调用出*,那该多好,在这里,phonebook只要是字典就可以了

2.创建和使用字典

phonebook = {'Mayun' : '1222' , 'Mahuateng' : '3243', 'Liyanhong' : '5657', 'zhouenlai' : '5454' }

上面的语句就是字典,由键和值组成,这种键-值对我们称之为项,上述的式子键为名字,值为对应的号码,键与值之间用:,项之间用逗号隔开。注意:键必须独一无二,值无需如此

2.1 函数dict

函数dict可以从其他映射(比如其他的字典)或者键-值对序列创建字典

for example:

items = [('name','jack'),('age',42)]

d = dict(items)

print(d)就会得到如下:

{'age':42,'name' :'jack'}

2.2 基本的字典操作

len(d):返回项(键-值)数

d[k] : 返回键k相关联的值

d[k]=v:将值V关联到键k

del d[k]:删除键为k的项

k in d: 检查字典d是否包含键位k的项(键-值)

在这里要强调几个问题:第一:字典的键可以是整数,也可以是任何不可变的类型,比如浮点数,字符串或者元组,第二:即便是字典里没有的键,也可以给他赋值,在这里字典会自动产生一个新项,如果不使用append或者类似的方法,就不能给列表中没有的元素赋值

x  = {}

x[42] = 'football'

print(x)得到

{42:'football'}

下面我自己写了一个实例:

people = {
    'Alice': {
        'phone':'2121',
        'addr':'shahsaskask'
        },
    'Beta' : {
        'phone' : '3232',
        'addr' : 'disdo'
        },
    'ceil' : {
        'phone':'3458',
        'addr' : 'fdhghgs'
        }
     }
labels = {'phone':'phone number','addr':'address'}
name = input('Name : ')
request = input('phone number(p) or address(a)? ')
if request =='p':key = 'phone'
if request == 'a':key = 'addr'
if name in people:print("{}'s {} is {} .".format(name,labels[key],people[name][key]))

大家可以复制到自己的IDE中运行一下

2.3将字符串格式设置功能应用于字典

在字典中包含各种信息,这样只需要在格式字符串中提取所需的信息即可,为此必须使用format_map*指出你将通过一个映射*提供所需要的信息

phonebook

 {'Mayun' : '1222' , 'Mahuateng' : '3243', 'Liyanhong' : '5657', 'zhouenlai' : '5454' }

“Mayun's phone number is {Mayun}.”.format_map(phonebook)

2.3字典方法

clear的用法

d = {}

d['name'] = 'candy'

d['age'] = 45

print(d)

{'age':45,'name':'candy'}

d.clear()

print(d)

{}

copy的用法:

返回一个新字典,其包含的键-值对与原*的字典相同

x = {'username':'admin','machines':['a','b','c']}

d = x.copy()

print(d)

{'username':'admin','machines':['a','b','c']}

 

posted on 2018-05-05 17:33  爱逃课的90后  阅读(256)  评论(0编辑  收藏  举报