huyuhang-python-day06

匿名函数

# 匿名函数 就是没有名字的函数 也叫 lambda表达式
# lambda 参数1, 参数2.. 参数n : 表达式
sums = lambda x, y : x+y
print(sums(10, 20))

高阶函数

# 高阶函数: 函数参数是一个函数
def func(x, y, f):
    if f =='+':
        return x + y
    elif f=='-':
        return x - y
    elif f=='*':
        return x * y
    elif f=='/':
        return x / y
print(func(10, 20, "+"))
print(func(10, 20, "-"))

def func2(x, y, f):
    return f(x, y)
#
# def jia(x, y):
#     return x + y
#
# print(func2(10, 20, jia))
print(func2(10, 30, lambda x, y: x + y))
print(func2(10, 30, lambda x, y: x * y))

系统高阶函数

map函数
  • map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回
from random import randint
ls = [randint(1, 20) for _ in range(10)]
print(ls)
# new_ls = []
# for i in ls:
#     new_ls.append(i**2)
# print(new_ls)

print(list(map(lambda x:x**2, ls)))
reduce函数

reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,

from functools import reduce
print(reduce(lambda x, y:x*y, [i for i in range(1, 10)]))
filter函数

filter()也接收一个函数和一个序列。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素。

print(list(filter(lambda x: x%2==0, ls)))

# 回数(回文数)是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数

li =[i for i in range(1000, 10000)]
# 反过来和 正向都相对
print(list(filter(lambda x: x == int(str(x)[::-1]), li)))
sorted函数
from random import randint
import string
ls = [randint(-20, 20) for _ in range(10)]
print(ls)
print(sorted(ls))
print(ls)
# 绝对值大小进行排序
# 可以是指定排序规则
print(sorted(ls, key=lambda x: x if x >= 0 else -x))
print(sorted(ls, key=lambda x: abs(x), reverse=True))
info = {"张三": 89, "李四": 77, "王五":60}
# 转化成列表才能进行排序
info_list = list(info.items())
print(info_list)
print(sorted(info_list, key=lambda item: item[1]))
ls_info = [{"name": "student" + x, "salary":randint(2000, 10000)} for x in string.ascii_uppercase[:6]]
print(ls_info)
# 安装工资进行升序排序
print(sorted(ls_info, key=lambda item: item["salary"]))

区别

from random import randint
import string
ls = [randint(-20, 20) for _ in range(10)]
print(ls)
ls.sort()
print(ls)
print(sorted(ls))

# .sort() 是原地操作  是列的中的一个方法
# sorted是返回新的对象  传入迭代就可以
函数模块/包

包: 含有__init__py的文件夹
在这里插入图片描述
在这里插入图片描述
文件读取

# 写文件
s = "你好Python"
f = open('hello.txt', mode='w', encoding='utf-8')
f.write(s)
f.close()
# 读文件
f = open('./data/stu_info.txt', mode='r', encoding='utf-8')
data = f.read()
print(data)
f.close()

wtih as 上下文方式(不用close)

with open('./data/stu_info.txt', mode='r' , encoding="utf-8") as f:
    data = f.read()
    print(data)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值