python函数二

lambda表达式

lambda表达式在 Python中是一种匿名函数(不用起名字的函数),用于创建简单的函数(即单行表达式)。lambda 表达式通常用在函数式编程中,作为参数传递给其他函数。下面是lambda表达式的基本定义:

lambda arguments: expression
  • arguments 是函数的参数,可以是一个或多个,用逗号分隔。
  • expression 是函数的返回值,无需写return,通常是一个简单的表达式。

以下是一个使用 lambda 表达式的示例:

# lambda 表达式求平方
square = lambda x: x ** 2

# 使用 lambda 表达式作为参数传递给其他函数
numbers = [1, 2, 3, 4, 5]
res = list(map(square, numbers))
print(res) 
[1, 4, 9, 16, 25]

在这个示例中,使用 lambda 表达式定义了一个求平方的函数 `square`。然后,使用 lambda 表达式作为参数传递给 `map` 函数,将列表中的每个元素求平方,并将结果存储在 `res` 列表中。后续文章会详细介绍map高阶函数,以及为什么使用list函数。lambda 表达式还可以与其他 Python 内置函数一起使用,例如 `filter`、`reduce`、`sorted` 等。

需要注意的是,虽然 lambda 表达式可以创建简单的函数,但如果需要使用更复杂的函数,则应该使用显式的函数定义来提高可读性和可维护性。例如下面的例子:

def  complex_fun(ele):
    """复杂的数据处理"""
    exp1
    exp2
    exp3
    ...
    return result
numbers = [1,2,3,4]
list(map(complex_fun, numbers))

类型提示

在 Python 3.5 及以上版本中(包含PEP484),添加了对类型提示的支持。类型提示本质上是函数注解。给函数入参和返回值加上了类型,一些静态类型检查工具(mypy)能够检测到类型错误,提示给研发,从而提高代码的可读性和可维护性。

类型提示的基本语法如下:

def function_name(par1: type1[, par2: type2]) -> type3:

    """类型提示, 单个返回参数"""

    expression

    return exp1

def function_name(par1: type1[, par2: type2]) -> tuple[type3,type4]:

    """类型提示, 多个个返回参数"""

    expression

    return exp1[,exp2]

下面是一个简单样例:

def add_numbers(x: int, y: int) -> int:
    return x + y
add_numbers(1,10)
11
def show_par(x: int, y: int) -> tuple[int, int]:
    return x,y
show_par(1,10)
(1,10)

需要注意的是,类型提示只是一种提示(提醒开发人员),并不会强制类型检查(像Java那样编译报错)。Python 仍然是一种动态类型语言,变量的类型仍然可以在运行时发生变化,进行类型推断。IDE可以借助一些静态分析插件分析原码,帮助开发人员更好地编写代码。

相关文章

Python数据类型的转换

变量的数据类型非常重要,通常情况下只有相同类型的变量才能进行运算。Python 具有简单的数据类型自动转换功能: 如果是整数与浮点运算,系统会先将整数转换为浮点数再运算, 运算结果为浮点型,例如:&g...

Python 入门系列——8. 类型转换

指定变量类型相信很多次你都想强制给某一个变量赋一个类型,现在可以使用 强制转换 了, Python 是一个面向对象语言,所以你可以在类中定义数据类型,包括一些基元类型。在 Python 中实现转换可以...

Python3 数据类型转换

有时候,我们需要对数据内置的类型进行转换,数据类型的转换,一般情况下你只需要将数据类型作为函数名即可。Python 数据类型转换可以分为两种:隐式类型转换 - 自动完成 显式类型转换 - 需要使用类型...

我用这11个Python库,把300行代码缩短到3行

在Python编程的世界里,有一些工具的出现,简直就像是为开发者量身定制的“秘密武器”。它们并非高深莫测的黑科技,而是实实在在能够大幅提升开发效率、减少重复劳动的库。这些工具的存在,让许多开发者不禁感...

python 类型检查解决方案及最佳实践

在Python中实现类型检查安全是提高代码健壮性的关键。以下是详细的解决方案和最佳实践,分为几个核心部分:一、Python类型系统的本质动态类型:运行时确定变量类型强类型:不支持隐式类型转换(如 &#...

如何用Python的pandas库修改列的数据类型

题目DataFrame students +-------------+--------+ | Column Name | Type | +-------------+--------+ | st...