python随笔学习

python里面的高阶函数:

在Python中,高阶函数是指能够接收其他函数作为参数,或者将函数作为返回值的函数。这种特性使得函数更加灵活,可以用来构建更复杂的功能。

Python中常见的高阶函数:

  • map(function, iterable):将一个函数应用到可迭代对象的每个元素上,并返回一个迭代器。
  • filter(function, iterable):过滤可迭代对象中的元素,返回满足条件的元素组成的迭代器。
  • sorted(iterable, key=function, reverse=False):对可迭代对象进行排序,可以指定排序方式和排序键。
  • reduce(function, iterable, initializer):对可迭代对象中的元素进行累积操作。
  • functools.partial(func, *args, **kwargs):部分应用一个函数,固定部分参数,返回一个新的函数。

可变参数:

可变参数 * 在函数定义中通常用来指示接受可变数量的位置参数。这些位置参数会被收集到一个元组中。

可变参数 ** 也就是两个* ,表示这个参数是一个可变长度的关键字参数,它可以接收任意多个关键字参数,并将这些参数存放在一个字典中。 

判断:

调用函数时传递的实参个数必须与函数形参个数相等才行。(X 错误的)

Python中,函数的实际参数个数可以与函数的形式参数个数不同。Python提供了灵活的参数传递方式,可以通过可变长度参数来接收不定数量的参数。

eval:

eval是个内置函数 用于执行一个字符串表达式 并返回运算后的结果,他可以接受一个字符串作为参数

result = eval("3 + 4 * 2")
print(result)  # 输出 11

lambda表达式定义的匿名函数:

 lambda:是一个关键字,表示创建一个匿名函数

my_list = [(1, 'a'), (2, 'b'), (3, 'c')]
result = list(map(lambda e: e[1], my_list))
print(result)  # 输出 ['a', 'b', 'c']

元组(  ()  ): tuple

当元组里面只有一个元素的时候 需要在末尾加上 , 和普通变量进行区分,如果不使用逗号来表示元组,Python会将其解释为一个普通的数值或变量。为了避免这种歧义,Python允许在元组中的单个元素后面添加一个逗号。

列表里的index:

list里面的index(num) 表示的是 list里面第一个num的下标  注意下标是从0开始的

x = [3, 5, 3, 7]
for i in x:
    print(x.index(i))
# 输出的结果是
# 0
# 1
# 0
# 3

要是这个num不存在list里面 就会抛出异常

x = [3, 5, 3, 7]
print(x.index(100))

 print(x.index(100))
ValueError: 100 is not in list

yield

yield翻译为 屈服 

yield来暂停函数的执行并将值传递给调用方

如何理解Python中的yield用法? - 知乎 (zhihu.com) 

def natural_numbers():
    n = 1
    while True:
        yield n
        n += 1

gen = natural_numbers()
print(next(gen))  # 输出 1
print(next(gen))  # 输出 2
print(next(gen))  # 输出 3
def even_numbers(maximum):
    n = 0
    while n <= maximum:
        yield n
        n += 2

# 使用生成器生成偶数序列
gen = even_numbers(10)
for num in gen:
    print(num)
    
# 输出的结果是 0  2  4  6  8  10
def fibonacci():
    a, b = 0, 1
    t = 0
    while t <= 10:
        yield a
        a, b = b, a + b
        t += 1

# 使用生成器生成斐波那契数列
gen = fibonacci()

for _ in range(10):
    print(next(gen))

# for i in gen:
#     print(i)

# 二者的输出结果是一样的
  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FindYou.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值