review-questions

questions:

python字典中items()和iteritems()的区别

items()返回的是列表对象,而iteritems()返回的是迭代器对象
print dic.items() #[('a', 'hello'), ('c', 'you'), ('b', 'how')]


print dic.iteritems() #<dictionary-itemiterator object at 0x020E9A50>


深究:iteritor是迭代器的意思,一次反悔一个数据项,知道没有为止


for i in dic.iteritems():

  print i

结果:('a', 'hello')

('c', 'you')

('b', 'how')

python是如何进行内存管理的?

垃圾回收机制
-- 引用计数 -- Python为每个对象维护一个引用计数 -- 当引用计数为0的 代表这个对象为垃圾 -- 标记清除 -- 解决孤立的循环引用 -- 标记根节点和可达对象 -- 不可达视为垃圾 -- 分代回收 -- 解决标记清除的效率问题 -- 0代 1代 2代 -- 阈值 (700,10,10-- 当调用c的接口开辟内存和销毁内存的差值为700的时候出发0代回收 -- 0代触发10次 触发1代回收 -- 1代触发10次 触发2代回收 -- 每次回收结束 没有被回收的对象放入下一代

关于python程序的运行性能方面,有什么手段提升性能?

1、使用多进程,充分利用机器的多核性能

2、对于性能影响较大的部分代码,可以使用C或C++编写

3、对于IO阻塞造成的性能影响,可以使用IO多路复用来解决

4、尽量使用Python的内建函数

5、尽量使用局部变量

 

posted @ 2018-11-20 22:00  hnlmy  阅读(192)  评论(0编辑  收藏  举报