标签:面试题 Code 函数 lst 经典 print View lambda
1.将列表按照下列规则排序,补全代码
1.整数在前,负数在后 2.正数从小到大 3.负数从大到小 lst = [7,-8,5,4,0,-2,-5] 补全代码: sorted(lst, key=lambda x:____)
答案:
lst = [7,-8,5,4,0,-2,-5] lst = sorted(lst, key=lambda x:(int(x<0), abs(x))) print(lst)View Code
解析:
sorted语法: sorted(iterable[, cmp[, key[, reverse]]]) 参数说明: iterable -- 可迭代对象。 cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。 key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。 reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。 lambda表达式语法: python 使用 lambda 来创建匿名函数。 lambda只是一个表达式,函数体比def简单很多。 lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。 lambda函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。 语法 lambda函数的语法只包含一个语句,如下: lambda [arg1 [,arg2,.....argn]]:expression 如下实例: # 可写函数说明 sum = lambda arg1, arg2: arg1 + arg2; # 调用sum函数 print "相加后的值为 : ", sum( 10, 20 ) print "相加后的值为 : ", sum( 20, 20 ) 以上实例输出结果: 相加后的值为 : 30 相加后的值为 : 40View Code
2.将列表内的元素根据位数合并成字典
lst = [1,2,4,8,16,32,64,128,256,512,1024,32769,65536,4294967296] # 输出 { 1:[1,2,3,8], 2:[16,32,64], 3:[128,256,512], 4:[1024,], 5:[32769,65536], 10:[4294927692] }
答案:
# 方法一: li = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 32769, 65536, 4294967296] dic = {} for i in li: length = len(str(i)) dic.setdefault(length, []) dic[length].append(i) print(dic) # 方法二: dct2 = {} [dct2.setdefault(len(str(i)), []).append(i) for i in lst] print(dct2)View Code
3.请尽量用简洁的方法将二维数组转换成一位数组
# 转换前 lst = [[1,2,3],[4,5,6],[7,8,9]] # 转换后 [1,2,3,4,5,6,7,8,9]
答案:
lst = [[1,2,3],[4,5,6],[7,8,9]] li = [i for j in lst for i in j ] print(li)View Code
4.哈希冲突回避算法回避有哪几种,分别有什么特点?
答案:
1.开放地址法 2.链地址法 3.公共溢出区法 4.再哈希法View Code
5.简述python的字符串驻留机制
答案:
''' 我们都知道python中的引用计数机制,相同对象引用其实都是内存中的同一个位置,这也叫作"python的字符串驻留机制" '''View Code
6.以下代码输出的是什么?
ls = ["a","b","c","d","e"] print(ls[10:])
答案:
[]View Code
标签:面试题,Code,函数,lst,经典,print,View,lambda 来源: https://www.cnblogs.com/baijinshuo/p/10403212.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。