python将字典的键值互换_Python数据结构之字典容器

8e552b207a25732dd0cef3f19477c29d.png

9ac14e1d829e6aba6c3bc8aea9e76520.png

字典

「字典」(Dictionary)就像一本地址簿,如果你知道了他或她的姓名,你就可以在这里找到其他地址或是能够联系上对方的更多详细信息,换言之,我们将键(Keys)(即姓名)与值(Values)(地址)联系到一起。在这里要注意到键必须是「唯一」的,正如在现实中面对两个完全同名的人你没办法找出有关他们的正确信息。

另外要注意的是你只能使用不可变的对象(如字符串)作为字典的键,但是你可以使用可变或不可变的对象作为字典中的值。基本上这段话也可以翻译为你只能使用简单对象作为键值。

在字典中,你可以通过使用符号构成d = {key : value1 , key2 : value2}这样的形式,来成对地指定键与值。在这里要注意到成对的键值之间使用冒号分隔,而每一对键值对则使用逗号进行区分,它们全都由一对大括号{ }括起来。

另外需要记住,字典中的成对的键值配对不会以任何方式进行排序。如果你希望为它们安排一个特别的次序,只能在使用它们之前自行进行排序。

你将要使用的字典是属于dict类下的实例或对象。

案例(保存为my_dict.py)

  1. #“ab”是地址簿的意思
  2. Ab = {‘swaroop’:’swaroop@swaroopch.com’ ,
  3. ‘larry’:’larry@wall.org’,
  4. ‘matsumoto’:’matz@ruby-lang.org’,
  5. ‘spammer’:’spammer@hotmail.com’}
  6. Print(“swaroop`s address is”,ab[‘swaroop’])
  7. #删除键值对
  8. Del ab[‘spammer’]
  9. Print(‘nThere are {} contacts in the address-bookn’.format(len(ab)))
  10. For name, address in ab.items():
  11. Print(‘Contact{} at {}’.format(name, address))
  12. #添加键值对
  13. Ab[‘Guido’] = ‘guido@python.org’
  14. If ‘Guido’ in ab:
  15. Print(“nGuido`s address is”,ab[‘Guido’])

输出:

  1. $ python my_dict.py
  2. Swaroop`s address is swaroop@swaroopch.com
  3. There are 3 contacts in the address-book
  4. Contact swaroop at swaroop@swaroopch.com
  5. Contact matsumoto at matz@ruby-lang.org
  6. Contact larry at larry@wall.org
  7. Guido`s address is guidi@python.org

程序原理

我们通过已经讨论过的符号体系来创建字典ab。然后我们通过使用索引运算符来指定某一键值以访问响应的键值对,有关索引运算符的方法我们已经在列表与元组部分讨论过了。可以观察到这之中的语法非常简单。

我们可以通过我们的老朋友——del语句来删除某一键值对。我们只需指定字典、包含需要删除的键值名称的索引运算符,并将其传递给del语句。这一操作不需要你知道与 该键对应哪个值。

接着,我们通过使用字典的items方法来访问字典中的每一键值对配对信息,这一操作将返回一份包含元组的列表,每一元组中则包含了每一对应的信息——键值对。我们检索这一配对,并通过for...in循环将每一对配对的信息相应地分配给name与address变量,并将结果打印在for代码块中。

如果想增加一对新的键值对,我们可以简单地通过使用索引运算符访问一个键值并为其分配与之对应的值,就像我们在上面的例子中对Guido键所做的那样。我们可以使用 in 运算符来检查某对键值对是否存在。

要想了解有关dict类的更多方法,请参阅help(dict)。

关键字参数与字典:
如果你曾在你的函数中使用过关键词参数,那么你就已经使用过字典了!你只要这么想——你在定义函数时的参数列表时,就指定了相关的键值对。当你的函数中访问某一变量时,它其实就是在访问字典中的某个键。(在编译器设计的术语中,这就叫:符号表(Symbol Table))

往期推荐阅读:

数据结构之元组容器

数据结构之列表容器

来都来了~点个好看、转发!支持下呀^_^

30c6ec5faec4998f99c66aa8958401cf.png

文章来源:Python编程吧,作者:小灰辉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值