python系列教程44

朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好的理解人工智能技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是要由所写,所以不如我的人工智能技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!

在上篇文章的例子中,我们使用字典去描述一个人物,用了三个键。如果信息更复杂一些,例如我们需要去记录名(first name)和姓(last name),还有多个工作(job)的头衔的话。那么我们可以使用字典嵌套另一个Python对象来实现上面的情况。下边的这个字典,一次将所有内容编写进一个常量,记录了更多的结构化信息。

>>> rec = {'name': {'first': 'Bob','last': 'Smith'},

'job': ['dev','mgr'],

'age': 40.5}

在这里,在顶层再次使用了三个键的字典(键分别是“name”、“job”和“age”),但是值的情况变得复杂得多:一个嵌套的字典作为name的值,支持了多个部分;并用一个嵌套的列表作为job的值从而支持多个角色和未来的扩展。我们可以通过键来获取上面字典中的各个组件。

>>> rec['name']                  # 'name' is a nested dictionary

{'last': 'Smith','first': 'Bob'}

>>> rec['name']['last']          # Index the nested dictionary

'Smith'

>>> rec['job']                   # 'job' is a nested list

['dev','mgr']

>>> rec['job'][-1]               # Index the nested list

'mgr'

>>> rec['job'].append('janitor') # Expand Bob's job description in-place>>> rec

{'age': 40.5,'job': ['dev','mgr','janitor'],'name': {'last': 'Smith','first': 'Bob'}}

注意这里的最后一个操作是展示如何扩展嵌入job列表的。因为job列表是字典所包含的一部分独立的内存,它可以自由地增加或减少。

本片文章的真正目的是为了说明Python核心数据类型的灵活性。就像你所看到的那样,嵌套允许直接并轻松地建立复杂的信息结构。使用C这样的底层语言建立一个类似的结构,将会很枯燥并会使用更多的代码——我们将不得不去事先安排并且声明结构和数组,填写值,将每一个都连接起来等。在Python中,这所有的一切都是自动完成的——运行一个表达式就创建了整个的嵌套对象结构。事实上,这是Python这样的脚本语言的主要优点之一。

同样重要的是,在底层语言中,当我们不再需要该对象时,必须小心地去释放掉所有对象空间。在Python中,当最后一次引用对象后(例如,将这个变量用其他的值进行赋值),这个对象所占用的内存空间将会自动清理掉:

>>> rec = 0 # Now the object's space is reclaimed

从技术来说,Python具有一种叫做垃圾收集的特性,在程序运行时可以清理不再使用的内存,并将你从必须管理代码中这样的内存细节中解放出来。在Python中,一旦一个对象的最后一次引用被移除,空间将会立即回收。

我的微信公众号是“人工智能知识分享”

在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值