字典是Python唯一内建的映射类型。字典是键值对的集合。

1.1 字典的使用                   

  某些情况下字典更加好用,比如一个电话列表。注意:电话号码只能用字符串数字表示,否则会出问题。因为电话号码一旦以0开头,就有可能被当做8进制解析,为了避免这个麻烦,就用字符串表示就可以了。用引号包住数字即可。

1.2 创建和使用字典             

  字典可以通过下面的方式创建:
变量名 = {键名:值名,键名:值名....}
  注意:用引号包起来,键值对合在一起被称作项。键和值中间用冒号隔开,项之间用逗号隔开,所有的项用大括号包起来,叫做字典。空字典就是一对大括号{}.
例如
phonebook = {'Alice':'1234','Beth':'9102'}

1.2.1 dict函数     

  可以用dict函数,通过其他映射比如字典或者(键,值)来建立字典

>>> items = [('name','Gumble'),('age',42)]
>>> d = dict(items)
>>> d
{'age': 42, 'name': 'Gumble'}
>>> d['name']
'Gumble'

dict函数也可以通过关键字参数来创建字典

>>> d = dict(name = 'Gumble',age = 42)
>>> d
{'age': 42, 'name': 'Gumble'}

1.3  基本字典操作                

  字典很多基本行为与序列类似,以字典d为例
1.len(d)返回d中项(键值对)的数量
2.d[k]返回关联到键k上的值
3.d[k] = v,修改d[k]索引的值
4.del d[k]删除键为k的项
5.k in d检查d中是否有含有键为k的项
  尽管字典和列表有很多特性相同,但也有一些区别,如下:
1.键值类型:字典的键值不一定为整型数据,也可能是其他不可变类型,如浮点型、字符串或元组,甚至是一个字典
2.自动添加:即使那个键起初在字典中并不存在,也可以为它分配一个值,这样字典就会建立一个新的项,而列表在不适用append方法或者其他类似操作时,不能将值关联到列表范围之外的索引上。
3.成员资格:表达式k in d (d为字典)查找的键,而不是值,表达式v in l(l为列表)则用来查找值,而不是索引
在字典中检查键的成员资格比在列表中检查值的成员资格更高效,数据结构规模越大,两者效率差距越明显。
下面是一个存储号码的字典示例

'''
Created on 2013-8-3

@author: Landau
'''
#coding=utf-8
#简单数据库
#使用人名作为键的字典,phone表示电话,addr表示地址
people = {
'Alice':{
'phone':'1345',
'addr':'abcd'
},
'Bob':{
'phone':'232',
'addr':'adfasf'
}
}
#针对电话号码用的描述性标签
labels = {
'phone':'phone number',
'addr':'address'
}
name = raw_input('Name: ')
request = raw_input('Phone number(p) or address(a)?')
#使用正确的键
if(request == 'p'):key = 'phone'
if(request == 'a'):key = 'address'
#如果名字是字典中有效的键,才会答应
if(name in people):print "%s's %s is %s" % (name,labels[key],people[name][key])

Name: Alice
Phone number(p) or address(a)?p
Alice's phone number is 1345
View Code

相关文章:

  • 2021-07-21
  • 2021-08-01
  • 2021-09-15
  • 2021-11-01
  • 2022-12-23
  • 2021-09-28
  • 2021-09-21
  • 2022-01-14
猜你喜欢
  • 2021-06-13
  • 2021-05-01
  • 2021-07-31
  • 2021-12-12
  • 2021-12-12
  • 2022-12-23
  • 2021-06-17
相关资源
相似解决方案