《Python数据挖掘与机器学习实战》—2.6 Python的字典

举报
华章计算机 发表于 2019/06/17 13:03:42 2019/06/17
【摘要】 本节书摘来自华章计算机《Python数据挖掘与机器学习实战》一书中的第2章,第2.6节,作者是方巍 。

2.6  Python的字典

  字典是另一种可变容器模型,并且可存储任意类型的对象。

  字典的每个键值对(key-value)用冒号分隔,每个键值对之间用逗号分隔,整个字典包括在花括号中,格式如下:

  

  dict = {key1 : value1, key2 : value2 }

  

  键一般是唯一的,如果重复,最后一个键值对就会替换前面的,值不需要唯一。例如:

  

  dict = {'a': 1, 'b': 2, 'b': '3'}

  print(dict['b'])

  print(dict)

  

  输出结果为:

  

  3

  {'a': 1, 'b': '3'}

  

  值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。这里给出一个简单的字典实例:

  

  dict = {'Alice': '20', 'Beth': '21', 'Cecil': '22'}

  

也可如此创建字典:

  

  dict1 = { 'abc':123}

  dict2 = { 'abc': 123, 98: 37 }

  

  如果要访问字典里的值,只要把相应的键放入熟悉的方括号中即可,例如:

  

  dict = {'Name': 'xioaming', 'Age': 20, 'Class': 'First'}

  print ("dict['Name']: ", dict['Name'])

  print ("dict['Age']: ", dict['Age'])

  

  输出结果为:

  

  dict['Name']:  xioaming

  dict['Age']:  20

  

  如果用字典里没有的键访问数据,则会输出错误,例如:

  

  dict = {'Name': 'xioaming', 'Age': 20, 'Class': 'First'}

  print ("dict[xiaowang']: ", dict['xiaowang'])

  

  输出结果为:

  

  Traceback (most recent call last):

    File "F:/program/2.6.py", line 19, in <module>

      print ("dict[xiaowang']: ", dict['xiaowang'])

  KeyError: 'xiaowang'

  

  向字典添加新内容的方法是增加新的键/值对,示例如下:

  

  dict = {'Name': 'xioaming', 'Age': 20, 'Class': 'First'}

  dict['Age'] = 22                                                      #修改年龄

  dict['School'] = "NUIST"                                               #添加新的键/值对

  print ("dict['Age']: ", dict['Age'])

  print ("dict['School']: ", dict['School'])

  

  输出结果为:

  

  dict['Age']:  22

  dict['School']:  NUIST

  

  在字典操作中,能删除单一的元素也能清空字典,删除一项只需要删除其键的内容。删除一个字典用del命令,示例如下:

  

  dict = {'Name': 'xioaming', 'Age': 20, 'Class': 'First'}

  del dict['Name']                                                                 #删除键是'Name'的条目

  dict.clear()                                                               #清空词典所有条目

  del dict                                                                         #删除词典

  print ("dict['Age']: ", dict['Age'])

  print ("dict['School']: ", dict['School'])

  

  但这会引发一个异常,因为用del后字典不再存在:

  

  Traceback (most recent call last):

    File "F:/program/DCGAN-tensorflow-master/2.6.py", line 34, in <module>

      print ("dict['Age']: ", dict['Age'])

  TypeError: 'type' object is not subscriptable


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。