1.如何实现python列表去重并保持原有顺序? li = [1,2,5,1,2,5] li2 = list(set(li)) print(li2) 2.现有两元祖(('a'),('b')),(('c'),('d')),请使用python匿名函数生成列表[{'a':'c'},{'b':'d'}] tu1 = (('a'),('b')) tu2 = (('c'),('d')) func = lambda x,y:[{x[0]:y[0]},{x[1]:y[1]}] li = func(tu1,tu2) print(li) # func = map(lambda x,y:[{tu1[0]:tu2[0]},{tu1[1]:tu2[1]}]) # print(func) a = map(lambda x:x**2,range(10)) print(list(a)) 3.请给出二分查找的python示列代码。 from timewrap import * @cal_time def bisection_method(li,val): '''二分法''' start = 0 end = len(li)-1 while start <=end: mid = (start+end) // 2 if li[mid] < val: start = mid+1 elif li[mid] > val: end = mid -1 else: return mid else: return -1 @cal_time def index_search(li,val): '''内置索引查找''' try: return li.index(val) except Exception: return -1 li = list(range(0,10**7)) a=bisection_method(li,10**6+598) b=index_search(li,10**6+598) print(a) print(b) 4.python字符串格式化中,%和format的主要区别是什么? 字符串格式化% 就是C里的printf; format是python 字符串自己的方法, 推荐用format,因为比较灵活 5.*args和**kwags在什么情况下会使用到?请给出使用**kwargs的示列代码 6.线程,进程,协程的区别? 7.GIL是什么,对于python有什么影响? GIL即全局解释器锁 GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行,以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。 有了GIL的存在,同一时刻同一进程中只有一个线程被执行 8.基于对列实现一个生产者消费者模型,要求:队列内元素不能超过5个,一旦有五个元素了,生产者不再生产,其他内容自由扩散 import queue,threading,time q = queue.Queue(maxsize= 5) def producer(): num = 1 while True: if not q.full(): q.put(num) print('put',num) num+=1 def consumer(): while True: time.sleep(2) if not q.empty(): print('get',q.get()) t1 = threading.Thread(target=producer) t2 = threading.Thread(target=consumer) t1.start() t2.start() 9.写sql语句,对下面两张表实现处理。 table_A name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王五 语文 81 王五 数学 100 王五 英语 90 tabe_B id name 1 张三 2 李四 3 王五 4 小刘 1.查出每门课程都大于80分的学生姓名 select name from table_A group by name having min(fenshu)>80; 2.查询语文成绩最大的学生姓名 select max(fenshu),name form table_A while kecheng='语文' 10.有表list,共有字段ABC类型都是整数,表中有如下记录: id A B C 1 2 7 9 2 5 6 4 3 3 11 9 (1)查询出B、C列的值,要求按B列升序排序: select B,C from list order by B asc (2)写一条新的纪录,值为 7 8 9 inset info list(A,B,C) values(7,8,9) (3)查询C列,要求清除重复的值,按降序排列: select C from list group by C desc