python基础 day16 内置函数,匿名函数

# 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)
员工信息处理

 




转载于:https://www.cnblogs.com/Forget-the-sky/p/10677980.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值