Python面试题

 

1.如何在函数内部修改全局变量? 用global修饰变量

2.如何按键删除字典的值? 方法一:del dic[key] 方法二:dic.pop(key)

3.如何合并字典? dic.update(dic2)

4.如何列表去重? 列表先转集合,再转列表 res = set(res) res = list(res)

5.fun(args, **kwargs)中的args, **kwargs是什么意思? *args不定长的非键值对参数 **kwargs不定长的键值对参数

6.列表l = [1,2,3,4,5],用map()输出[1,4,9,16,25]? def fn(x) return x**

res = map(fn, l)

7.列表l = [1,4,9,16,25],用列表推导式提取出大于10的数? res = [i for i in l if i > 10]

8.生成随机整数、随机小数、0-1小数? 随机整数:random.randint(a, b) 5个随机小数:numpy.random.randn(5) 0-1小数:random.random()

9.可变对象有哪些? list、dict 对变量进行append、+=等操作后,只改变值,地址不会改变,不会创建新对象

10.不可变对象有哪些? int、bool、float、string、tuple 如果改变了对象的值,相当于新建了一个对象 相同值的对象,在内存中只有一个对象,地址都相同

11.list如何排序? list.sort(reverse = False),没有返回值

12.dict如何按键排序? 先用sorted()排序得到list,再转成dict l = sorted(dic.items(), key = lambda i:i[0], reverse = False) dic2 = dict(l)

13.如何从list中挑选出所有奇数? 方法一: def fn(a): return a%2 == 1

res = filter(fn, list)

方法二: res = [i for i in a if i%2==1]

14.append、+、extend的区别? append:得到[1,2,3,[4]],修改原值、没有返回值、整体拼接 +:得到[1,2,3,4],返回创建的新值、逐个拼接 extend:得到[1,2,3,4],修改原值、没有返回值、逐个拼接

15.如何删除文件? os.remove(文件名)

16.str.join(str)和str.join(list)有什么区别? 结果一样

17.如何交换两个值(swap的效果)? a, b = b, a

18.zip()的作用? 配对返回元组的列表,例如: a = [1, 2]; b = [3, 4] zip(a, b)的结果是[(1, 3), (2, 4)] 如果数量不同,多出来的不返回,例如: a = [1, 2]; b = [3, 4, 5] zip(a, b)的结果是[(1, 3), (2, 4)]

19.str=”小明98分”,把98替换为100? res = str.sub(r”\d+”, “100”, str)

20.”%.03f”%1.3335得到什么? 字符串1.333

21.float如何保留小数? round(f, 位数)

22.any(list)、all(list)的作用? 只要list中有1个为true,则any()返回true 必须list中全为true,all()才返回true

23.copy()和deepcopy()的区别?