# reversed()
# l=[1,2,3,4,5]
# l.reverse()
# print(l)
# l=[1,2,3,4,5]
# l1=reversed(l) #保留原列表,返回一个反向的迭代器
# print(l1)
# l=(1,2,3,4,5,656,7767,676,1212)
# sli=slice(1,5,2) #产生一个切片序列
# print(l[sli])
#format 功能复杂
# print(format('test','<20')) 开20个空间左对齐
# print(format('test','>20')) 右对齐
# print(format('test','^20')) 居中
#bytes 转换成bytes类型 #编码转换
# print(bytes('你好',encoding='gbk')) #unicode转换成 gbk
# print(bytes('你好',encoding='utf-8').decode('utf-8')) ##unicode转换成 utf-8
# b_array=bytearray('你好',encoding='utf-8') #字节数组
# print(b_array)
# print(type(b_array))
# print(b_array[0])
# print(ord('a',)) #按unicode转数字
# print(chr(45)) #按unicode转字符
# print(ascii('a')) #如果ascii码里有就不变,如果没有就打印/u
# print(ascii('你好'))
# name='egg'
# print('你好%r'%name)
# print(repr('1'))
# print(repr(1))
# all 判断可迭代对象是否有Flase的值
# any 判断可迭代对象是否有True的值
# l=[1,2,3,4,5]
# dic={'k1':1,'k2':2,'k3':3}
# tup=('a','b,','c')
# set1={'o','p','q'}
# for i in zip(l,dic,tup,set1): #拉链方法,按最小的拉
# print(i)
# def is_odd(x):
# return x%2==1
# ret=filter(is_odd,[1,2,3,4,5,6,7,8,9]) #调用一个方法,传递一个参数,得到一个迭代器,过滤方法,
# print(ret)
# for i in ret:
# print(i)
# generater=(i for i in [1,2,3,4,5,6,7,8,9] if i%2==1)
# for i in generater:
# print(i)


from math import sqrt #开平方 def is_int(x): return sqrt(x)%1==0 ret=filter(is_int,range(1,101)) for i in ret: print(i)
# ret=map(abs,[1,-4,6,-9]) #处理可迭代对象里的值
# for i in ret:
# print(i)
#filter 执行后的结果集合<=执行之前的个数,值管筛选,不会改变原来的值
#map 执行前后元素个数不变,值可能发生改变
# l=[1,-4,6,5,-10]
# l.sort(key=abs) #在原列表之上进行排序
# print(l)
# print(sorted(l)) #形成一个新的列表,返回值
#匿名函数: lambda 参数:返回值
# dic={'k1':50,'k2':100,'k3':150,'k4':200}
# print(max(dic,key=lambda k:dic[k]))
# res=filter(lambda x : x>10,[1,2,3,15,8,6,12])
# for i in res:
# print (i)
# res=map(lambda x :x**x,[1,2,3,4,5])
# for i in res:
# print(i)
# res=zip((('a'),('c')),(('b'),('d')))
# ret=map(lambda tup:{tup[0]:tup[1]},res)
# print(list(ret))
# def multipliers():
# return (lambda x:i*x for i in range(4))
# print([m(2) for m in multipliers()])
内置函数能和lambda配合使用的有 max,min,filter,map,sorted


#根据条件查询员工信息 #select name,age where age>22 dic={'id':0,'name':1,'age':2,'phone':3,'job':4} #建立参照字典 '''处理用户输入的信息''' ret='select * where age>22' view,condition=ret.split('where') view=view.replace('select','').strip() view_lst=view.split(',') if '*' in view_lst: view_lst=['id','name','age','phone','job'] print(view_lst) '''读取文件,将文件内容调入内存''' def get_line(filename): with open(filename,encoding='utf-8') as f: for line in f: line_lst=line.strip().split(',') yield line_lst g=get_line('userfile') '''过滤条件,找出符合条件的信息''' def condition_filter(condition): if '>' in condition: condition=condition.strip() # print(condition) col,val=condition.split('>') for line_lst in g: if int(line_lst[dic[col]])>int(val): yield line_lst g1=condition_filter(condition) '''输出查找结果''' def views(view_lst,g1): for line in g1: for i in view_lst: print(line[dic[i]]+'\t',end='') print('') views(view_lst,g1)