假期(面试题一)
# # 1、如何实现对python列表去重并保持原先的顺序? # li = [3,5,7,8,6,3,2,4,7,5,4,3,2,1] # new_list = [] # for i in li: # if i in new_list: # pass # new_list.append(i) # print(new_list) ## 2、现有两元组(("a"),("b")),(("c"),("d")),使用python中匿名函数生成列表[{"a":"c"},{"b":"d"}] # x,y = (("a"),("b")),(("c"),("d")) # print(dict(zip(x,y))) # #解法一: # text = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)] # print(text(x,y)) # # 解法二 # print(list(map(lambda t:{t[0]:t[1]},zip(x,y)))) # # 解法三 # print([{i:j} for i,j in zip(x,y)]) # # 3、请写出二分查找的python实例代码, # li = [1,4,3,67,9,8,7,5,33,45,99] # li.sort(reverse=False) # # def binary_search(alist,item): # ''' # :param alist: # :param item: # :return: 二分查找,循环 # ''' # n = len(alist) # start = 0 # end = n-1 # while start <= end: # mid = (start+end)//2 # if item not in alist: # return "没有你要找的东西" # elif item == alist[mid]: # return "找到了,索引为%s" %mid # elif item < alist[mid]: # end = mid - 1 # elif item > alist[mid]: # start = mid + 1 # return False # print(binary_search(li,100)) # # def search(data,item): # ''' # :param data: # :param item: # :return:递归实现二分查找 # ''' # n = len(data) # if 0 == n: # return False # mid = n//2 # if item not in data: # return False # elif item == data[mid]: # return mid # elif item < data[mid]: # return search(data[:mid],item) # else: # return search(data[mid+1:],item) # print(search(li,1)) # # 4、在python字符串格式化中,%和.format 的主要区别是什么? # 从大的角度来说两者没有什么较大的区别,用%能实现的格式化操作同format同样可以完成,反之毅然,从小的角度来说format格式化更加灵活 # 例如: # ls1 = "{0}{1}{2}".format("张","建","平") # ls2 = "{}{}{}".format("张","建","平") # ls3 = "{name1}{name2}{name3}".format(name1="张",name2="建",name3="平") # print(ls1,ls2,ls3) #他们打印的结果是相同的 # # 5、*args和**kwargs在什么情况下回使用到?请给出使用**kwargs的示例 # # *args和**kwargs为可变长参数,当函数需要传太多的值时形参可以用这个代替 # def text(**kwargs): # print(kwargs) # text(name="张建平",age=18,sex="male") # 6、x="foo",y = 2 ; print(x*y) 的结果是什么? # 结果为foofoo #字符串支持加法(拼接)和乘法 # # 7、kvps = {"1":1,"2":2};thecopy = kvps; kvps["1"] = 5;sum = kvps["1"] + thecopy["1"] print(sum) 的结果是什么? # kvps = {"1":1,"2":2} # thechop = kvps # kvps["1"] = 5 # sums = kvps["1"] + thechop["1"] # print(sums) #thecopy和kvps公用一块内存地址,改变其中某一项,另一个也将会改变 10 # 8、sys.path.append("/root/mods")的作用是什么 # 路径拼接,会将/root/mods 加入sys.path中,在python中模块路径找不到经常使用 # 9、python里面如何实现tuple和list的转换 # 假如有一个元组tupledemo,转换为列表只需要 list(tupledemo) # 假如有一个元组listdemo,转换为列表只需要 tuple(listdemo) # 10、请写出一段代码实现删除一个list里面的重复元素 # lis = [1,2,3,2,4,5,3,2,4] # # 方法一 # data_list= [] # for i in lis: # if i not in data_list: # data_list.append(i) # print(data_list) # 方法二 # print(list(set(lis)))
本文来自博客园,作者:一石数字欠我15w!!!,转载请注明原文链接:https://www.cnblogs.com/52-qq/p/8446930.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步