python 面试题总结
文化
说说你对 zenofpython 的理解,你有什么办法看到它:
import this
你在 github 上都 fork 过哪些 python 库,列举一下你经常使用的,每个库用一句话描述下其功能
说说你对 pythonic 的看法,尝试解决下面的小问题:
交换两个变量值
a,b = b,a
去掉list中的重复元素
old_list = [1,1,1,3,4]
new_list = list(set(old_list))
翻转一个字符串
s = 'abcde'
ss = s[::-1]
用两个元素之间有对应关系的list构造一个dict
names = ['jianpx', 'yue']
ages = [23, 40]
m = dict(zip(names,ages))
将数量较多的字符串相连,如何效率较高,为什么
fruits = ['apple', 'banana']
result = ''.join(fruits)
python 字符串效率问题之一就是在连接字符串的时候使用‘ ’号,例如 s = ‘s1’ ‘s2’ ‘s3’ ... ’sN’,总共将 N 个字符串连接起来, 但是使用 号的话,python 需要申请 N-1 次内存空间, 然后进行字符串拷贝。原因是字符串对象 PyStringObject 在 python 当中是不可变 对象,所以每当需要合并两个字符串的时候,就要重新申请一个新的内存空间 (大小为两个字符串长度之和)来给这个合并之后的新字符串,然后进行拷贝。 所以用 号效率非常低。建议在连接字符串的时候使用字符串本身的方法 join(list),这个方法能提高效率,原因是它只是申请了一次内存空间, 因为它可以遍历 list 中的元素计算出总共需要申请的内存空间的大小,一次申请完。
你调试 python 代码的方法有哪些
基础
什么是 GIL
什么是元类 (meta_class)
对比一下 dict 中items与iteritems
高级
是否遇到过 python 的模块间循环引用的问题,如何避免它
有用过 withstatement 吗?它的好处是什么?
说说 decorator 的用法和它的应用场景,如果可以的话,写一个 decorator
inspect 模块有什么用
写一个类,并让它尽可能多的支持操作符
说一说你见过比较 cool 的 python 实现
http://niusmallnan.github.io/_build/html/_templates/python_exam.html
sohu-dba
本文转载自:微信公众账号 - SOHU-DBA,版权归原作者所有! |