review-questions

时间:2022-02-09 07:41:14

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、尽量使用局部变量

相关文章