文件名称:使用字典-rk3399 android 7.1 tablet 软件开发指南v1.00-2017-01-16.pdf
文件大小:785KB
文件格式:PDF
更新时间:2024-06-22 07:50:10
Python 教程
第9章 数据结构 上一页 字典 下一页 字典 字典类似于你通过联系人名字查找地址和联系人详细情况的地址簿,即,我们把键(名字)和 值(详细情况)联系在一起。注意,键必须是唯一的,就像如果有两个人恰巧同名的话,你无 法找到正确的信息。 注意,你只能使用不可变的对象(比如字符串)来作为字典的键,但是你可以把不可变或可变 的对象作为字典的值。基本说来就是,你应该只使用简单的对象作为键。 键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。注意它们的键/值对用冒 号分割,而各个对用逗号分割,所有这些都包括在花括号中。 记住字典中的键/值对是没有顺序的。如果你想要一个特定的顺序,那么你应该在使用前自己 对它们排序。 字典是dict类的实例/对象。 使用字典 例9.4 使用字典 #!/usr/bin/python # Filename: using_dict.py # 'ab' is short for 'a'ddress'b'ook ab = { 'Swaroop' : 'swaroopch@byteofpython.info', 'Larry' : 'larry@wall.org', 'Matsumoto' : 'matz@ruby-lang.org', 'Spammer' : 'spammer@hotmail.com' } print "Swaroop's address is %s" % ab['Swaroop'] # 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 "\nGuido's address is %s" % ab['Guido'] (源文件:code/using_dict.py) 输出 $ python using_dict.py Swaroop's address is swaroopch@byteofpython.info There are 4 contacts in the address-book Contact Swaroop at swaroopch@byteofpython.info Contact Matsumoto at matz@ruby-lang.org Contact Larry at larry@wall.org 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类的完整方法列表。 关键字参数与字典。如果换一个角度看待你在函数中使用的关键字参数的话,你已经使用了字 典了!只需想一下——你在函数定义的参数列表中使用的键/值对。当你在函数中使用变量的 时候,它只不过是使用一个字典的键(这在编译器设计的术语中被称作 符号表 )。 上一页 上一级 下一页 元组 首页 序列