9.25 总结

1.匿名函数:

他没有绑定名字,使用一次即被收回,加括号可以运行。

匿名函数语法:lambda 参数:返回值

res=(lambda x,y :x+y)(1,2)
print(res)  #3

匿名函数通常与max()、sorted()、filter()、sorted()方法联用

1.max返回最大值 (iterable, [, default=obj, key=func])(arg1, arg2, args, *[, key=func])

res=max([1,2,3,4,5])
print(res)  #5
res=max(1,2,3,4,5,6)
print(res)  #6

2.有名函数得出薪资最高的人

salary_dict = {
    'nick': 3000,
    'jason': 100000,
    'tank': 5000,
    'sean': 2000,
    'z': 1000
}

#res=max(salary_dict)  #默认key的首字母排序
#print(res)  #z

#def func(i):
#    return salary_dict[i]
#res=max(salary_dict,key=func)
res=max(salary_dict,key=lambda i:salary_dict[i])
print(res)  #jason

key=func循环遍历salary_dict,会取出所有的key值,在func函数中执行返回薪资,通过薪资排序,得到薪资最高的key。

3.min 返回最小值

salary_dict = {
    'nick': 3000,
    'jason': 100000,
    'tank': 5000,
    'sean': 2000,
    'z': 1000
}

res=min(salary_dict,key=lambda i:salary_dict[i])
print(res) #z

4.filter (function or None, iterable) --》筛选可迭代器对象里的元素

#有名函数实现
def function(item):
    if item>2:
        return True
    else:
        return False
    
res=filter(function,[1,2,3,4])
print(res)  #<filter object at 0x00000000020BC0F0>
print(list(res))  #[3,4]
#匿名函数实现
res=filter(lambda item:item>2,[1,2,3,4])
print(list(res))  #[3,4]
#强制类型转换针对所有数据类型
salary_dict = {
    'nick': 3000,
    'jason': 100000,
    'tank': 5000,
    'sean': 2000,
    'z': 1000
}
res=filter(lambda item:salary_dict[item]>=3000,salary_dict)
print(list(res))  #['nick', 'jason', 'tank']

5.map 映射 (func, *iterables)--》迭代器

#有名函数实现
def func(item):
    return item+1
res=map(func,[1,2,3])
print(res)
print(list(res)  #[2,3,4]

#匿名函数实现
res=map(lambda i:i+1,[1,2,3])
print(list(res))  #[2,3,4]

6.sorted 排序

res=sorted([2,4,9,7,1],reverse=True)
print(list(res)) 

salary_dict = {
    'nick': 3000,
    'jason': 100000,
    'tank': 5000,
    'sean': 2000,
    'z': 1000
}
res=sorted(salary_dict,key=lambda i:salary_dict[i],reverse=True)  #按照薪资排序
print(list(res))

res=sorted(salary_dict,key=lambda i:i,reverse=True)  #按照key的首字母排序
print(list(res))
运行结果:
[9, 7, 4, 2, 1]
['jason', 'tank', 'nick', 'sean', 'z']
['z', 'tank', 'sean', 'nick', 'jason']

2.Python解释器内置方法:

#bytes  转换为二进制
res=bytes('中国',encoding='utf8')
print(res)  #b'\xe4\xb8\xad\xe5\x9b\xbd'
#chr/ord
print(chr(97))  #a
print(ord('a'))   #97
#divmod
print(divmod(10,4)) #取整/取余  (2,2)
#enumerate  列举
lt=[1,2,3]
for i in range(len(lt)):
    print(i,lt[i])
#下面的方法同上
for i,j in enumerate(lt):  #取出索引和值
    print(i,j)
运行结果:
0 1
1 2
2 3
#eval-->把字符串的引号去掉,留下来的是什么就是什么
s='"abc"'
print(type(eval(s)),eval(s))  #<class 'str'> abc
 hash,可变不可哈希
print(hash(123123))

# 了解

# abs
print(abs(-1))
# all# 可迭代对象内的元素全部为True则为True
print(all([1, 2, 3, 3]))
# any
print(any([0, 0, ]))
# bin/oct/hex
print(bin(123))
print(oct(123))
print(hex(123))
# dir: 列出模块的所有方法
# import time
#
# print(dir(time))
# frozenset: 不可变化的集合,类似于元组
s = frozenset({1, 2, 3})
print(s)


# gloabals/locals
# print(globals())  # 列出所有全局变量
# print('locals():', locals())


def func():
    s = 's1'
    print(globals())  # 列出所有全局变量
    print('locals():', locals())  # 列出当前位置所有变量


func()
# pow
print(pow(2, 2))
# round
print(round(10.333))
# slice
s = slice(1, 5, 2)  # 1start,5stop,2step
lt = [1, 2, 3, 4, 5, 6, 7]
print(lt[s])
print(lt[1:5:2])
# # sum
print(sum([1, 2, 3, 4, 5]))
# __import__  # 通过字符串导入模块
# import 'time'


time = __import__('time')
print(time.time())

猜你喜欢

转载自www.cnblogs.com/lidandanaa/p/11585866.html