一、选择填空题
1. 用一行代码交换a,b的值
a,b = 1,2 print(a,b) a,b = b,a print(a,b)
2. 元祖中有一个元素,有逗号则类型是元祖,无逗号则是远数据类型
tu1 = (1) print(tu1,type(tu1)) #1 <class 'int'>
tu2 = (1,)
print(tu2,type(tu2)) #(1,) <class 'tuple'>
tu3 = ([1])
print(tu3,type(tu3)) #[1] <class 'list'>
tu4 = ([1],)
print(tu4,type(tu4)) #([1],) <class 'tuple'>
3. 列表去重(先转换成集合--集合自动去重--再转换回列表)
li = [1,2,33,33,2,1,4,5,6,6] set1 = set(li) print(set1) #{1, 2, 33, 4, 5, 6} li = list(set1) print(li) #[1, 2, 33, 4, 5, 6]
二、程序小题
1. 如下代码的运行结果是什么?
for i in range(0,10,-1): print(i)
运行结果:成功运行,不输出任何结果,不报错
2. 匿名函数——面试题1:print(x)的结果是:24
d =lambda p:p*2 t =lambda p:p*3 x = 2 x = d(x) #4 x = t(x) #12 x = d(x) #24 print(x) #24
3. 匿名函数——面试题2:现有两个元祖(('a'),('b')),(('c'),('d')),请使用Python中匿名函数生成列表[{'a':'c'},{'b':'d'}]
解析:和匿名函数配合使用的内置函数:min max filter map sorted
print(list(map(lambda tup:{tup[0]:tup[1]},zip((('a'),('b')),(('c'),('d')))))) # 上面一行代码等于下面三行,可以实现本题功能 ret = zip((('a'),('b')),(('c'),('d'))) res = map(lambda tup:{tup[0]:tup[1]},ret) print(list(res)) #数据类型强转可以代替循环打印
4. 匿名函数——面试题3:下面代码的输出是什么(答案:[6, 6, 6, 6]),请修改multipliers的定义来产生期望的结果
def multipliers(): return [lambda x:i*x for i in range(4)] print([m(2) for m in multipliers()]) #[6, 6, 6, 6]
# 请修改multipliers的定义来产生期望的结果 def multipliers(): return (lambda x:i*x for i in range(4)) print([m(2) for m in multipliers()]) #[0, 2, 4, 6]