数据结构之字典
2016-09-12 21:50
169 查看
字典
字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
注意,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以不可变或可变的对象作为字典的值。基本说来就是,你应该只使用简单的对象作为键。
键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。
记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己对它们排序。
字典是dict类的实例/对象。
使用字典
例9.4 使用字典
输出
[root@losnau python]# python using_dict.py
Swaroop's address is Swaroop@byteofpython.nfo
There are 4 contacts in the address-book
Contact Matsumoto at matz@ruby-lang.org
Contact Larry at larry@wall.org
Contact Swaraoop at Swaroop@byteofpython.nfo
Contact Guido at guido@python.org
Guido's address is guido@python.org
它如何工作
我们使用已经介绍过的标记创建了字典ab。然后我们使用在列表和元组章节中已经讨论过的索引操作符来指定键,从而使用键/值对。我们可以看到字典的语法同样十分简单。
我们可以使用索引操作符来寻址一个键并为它赋值,这样就增加了一个新的键/值对,就像在上面的例子中我们对Guido所做的一样。
我们可以使用我们的老朋友——del语句来删除键/值对。我们只需要指明字典和用索引操作符指明要删除的键,然后把它们传递给del语句就可以了。执行这个操作的时候,我们无需知道那个键所对应的值。
接下来,我们使用字典的items方法,来使用字典中的每个键/值对。这会返回一个元组的列表,其中每个元组都包含一对项目——键与对应的值。我们抓取这个对,然后分别赋给for..in循环中的变量name和address然后在for-块中打印这些值。
我们可以使用in操作符来检验一个键/值对是否存在,或者使用dict类的has_key方法。你可以使用help(dict)来查看dict类的完整方法列表。
关键字参数与字典。如果换一个角度看待你在函数中使用的关键字参数的话,你已经使用了字典了!只需想一下——你在函数定义的参数列表中使用的键/值对。当你在函数中使用变量的时候,它只不过是使用一个字典的键(这在编译器设计的术语中被称作 符号表 )。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无法找到正确的信息。
注意,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以不可变或可变的对象作为字典的值。基本说来就是,你应该只使用简单的对象作为键。
键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒号分割,而各个对用逗号分割,所有这些都包括在花括号中。
记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己对它们排序。
字典是dict类的实例/对象。
使用字典
例9.4 使用字典
#!/usr/bin/python # Filename: using_dict.py # 'ab' is short for 'a'ddress'b'ook ab ={ 'Swaraoop':'Swaroop@byteofpython.nfo', 'Larry':'larry@wall.org', 'Matsumoto':'matz@ruby-lang.org', 'Spammer':'spammer@hotmail.com' } print "Swaroop's address is %s" % ab['Swaraoop'] #Adding a key/value pair ab['Guido']='guido@python.org' #Deleting a key/value pair del ab['Spammer'] print '\nThere are %d contacts in the address-book\n'%len(ab) for name,address in ab.items(): print 'Contact %s at %s'%(name,address) if 'Guido' in ab: #Or ab.has_key('Guido') print "\n Guido's address is %s"%ab['Guido']
输出
[root@losnau python]# python using_dict.py
Swaroop's address is Swaroop@byteofpython.nfo
There are 4 contacts in the address-book
Contact Matsumoto at matz@ruby-lang.org
Contact Larry at larry@wall.org
Contact Swaraoop at Swaroop@byteofpython.nfo
Contact Guido at guido@python.org
Guido's address is guido@python.org
它如何工作
我们使用已经介绍过的标记创建了字典ab。然后我们使用在列表和元组章节中已经讨论过的索引操作符来指定键,从而使用键/值对。我们可以看到字典的语法同样十分简单。
我们可以使用索引操作符来寻址一个键并为它赋值,这样就增加了一个新的键/值对,就像在上面的例子中我们对Guido所做的一样。
我们可以使用我们的老朋友——del语句来删除键/值对。我们只需要指明字典和用索引操作符指明要删除的键,然后把它们传递给del语句就可以了。执行这个操作的时候,我们无需知道那个键所对应的值。
接下来,我们使用字典的items方法,来使用字典中的每个键/值对。这会返回一个元组的列表,其中每个元组都包含一对项目——键与对应的值。我们抓取这个对,然后分别赋给for..in循环中的变量name和address然后在for-块中打印这些值。
我们可以使用in操作符来检验一个键/值对是否存在,或者使用dict类的has_key方法。你可以使用help(dict)来查看dict类的完整方法列表。
关键字参数与字典。如果换一个角度看待你在函数中使用的关键字参数的话,你已经使用了字典了!只需想一下——你在函数定义的参数列表中使用的键/值对。当你在函数中使用变量的时候,它只不过是使用一个字典的键(这在编译器设计的术语中被称作 符号表 )。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
相关文章推荐
- MapInfo数据字典、文件结构说明
- dz+uch 数据字典 数据结构
- 对bootstrap$、数据字典结构信息和open相关性的研究
- 一键生成表结构说明文档的参考,数据字典生成方式参考
- 数据结构基础+STL--字典翻译
- 数据字典-导出SQLServer2000表结构
- 第八课 oracle数据库的内存结构 表空间,动态性能视图,数据字典等
- 一键生成表结构说明文档的参考,数据字典生成方式参考
- 数据项、数据字典、模式等基本概念辨析 数据库系统结构
- Toad导出数据字典,把数据库所有的表结构导出到htm中。
- Python中数据结构 列表 元组 字典 序列
- SQL 查询业务库_SQL 查询数据字典_sql查询表结构,过程,视图,主键,外键,约束
- SQL 查询业务库_SQL 查询数据字典_sql查询表结构,过程,视图,主键,外键,约束
- 对bootstrap$、数据字典结构信息和open相关性的研究
- 表结构数据字典---查询表结构明细信息
- 基于数据字典的通用查询系统(二)数据库组成结构的分析
- [SQL Server] 导出表结构(数据字典)
- SQL Server导出表结构(数据字典)
- 根据数据字典表定义的表结构,生成创建表的SQL语句
- 生成选择Toad导出数据字典,把数据库所有的表结构导出到htm中。