Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法

  • Post category:Python

Python匿名函数

Python中的匿名函数也称为lambda函数,它是一种没有名称的函数,通常用于简单的函数定义。lambda函数可以接受任意数量的参数,但只能返回一个表达式的值。lambda函数的法如下:

lambda arguments: expression

其中,arguments是函数的参数,expression是函数的返回值。下面是一个示例,演示如何使用lambda函数:

# 定义一个lambda函数
f = lambda x: x * 2

# 调用lambda函数
print(f(3)) # 输出6

在这个示例中,我们了一个lambda函数f,它接受一个参数x,并返回x的两倍。然后,我们调用lambda函数f,并将参数设置为3,输出结果为6。

Python排序函数

Python中的排序函数可以对列表、元组、字典等数据类型进行排序。Python中的排序函数有两种,分别是sorted函数和sort方法。sorted函数可以对任意可迭代对象进行排序,而sort方法只能对列表进行排序。下面是一个示例,演示如何使用sorted函数和sort方法进行排序:

# 使用sorted函数进行排序
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
b = sorted(a)
print(b) # 输出[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

# 使用sort方法进行排序
a.sort()
print(a) # 输出[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]

在这个示例中,我们定义了一个列表a,然后使用sorted函数和sort方法对列表进行排序。输出结果都是按照从小到大的顺序排列的。

Python过滤函数

Python中的过滤函数可以对可迭代对象进行过滤,只保留符合条件的元素。Python中的过滤函数有两种,分别是filter函数和列表推导式。filter函数可以对任意可迭代对象进行过滤,而列表推导式只能对列表进行过滤。下面是一个示例,演示如何使用filter函数和列表推导式进行过滤:

# 使用filter函数进行过滤
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
b = list(filter(lambda x: x > 3, a))
print(b) # 输出[4, 5, 9, 6, 5, 5]

# 使用列表推导式进行过滤
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
b [x for x in a if x > 3]
print(b) # 输出[4, 5, 9, 6, 5, 5]

在这个示例中,我们定义了一个列表a,然后使用filter函数和列表推导式对列表进行过滤,只保留大于3的元素。输出结果都是符合条件的元素。

Python映射函数

Python中的映射函数可以对可迭代对象进行映射,将每个元素映为一个新的元素。Python中的映射函数有两种,分别是map函数和列表推导式。map函数可以对任意可迭代对象进行映射,而列表推导只能对列表进行映射。下面是一个示例,演示如何使用map函数和列表推导式进行映射:

# 使用map函数进行映射
a = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
b = list(map(lambda x: x * 2, a))
print(b) # 输出[6, 2, 8, 2, 10, 18, 4, 12, 10, 6, 10]

# 使用列表推导式进行映射
a = [3, 1, 4, 1, 5, 9, 2, , 5, 3, 5]
b = [x 2 for x in a]
print(b) # 输出[6, 2, 8, 2, 10, 18, 4, 12, 10, 6, 10]

在这个示例中,我们定义了一个列表a,然后使用map函数和列表推导式对列表进行映射,将每个元素乘以2。输出都是映射后的新元素。

Python递归

Python中的递归是一种函数调用自身的方法,通常用于解决需要重复执行相同操作的问题。递归函数必须包含一个终止条件,否则会导致无限递归。下面是一个示例,演示如何使用递归函数:

# 定义一个递归函数
def factorial(n):
    if n ==0:
        return 1
    else:
        return n * factorial(n - 1)

# 调用递归函数
print(factorial(5)) # 输出120

在这个示例中,我们定义了一个递归函数factorial,它计算n的阶乘。如果n等于0,则返回1,否则返回n乘以factorial(n-1)的结果。然后,我们调用递归函数factorial,并将参数设置为5,输出结果为120。

Python二分法

Python中的二分法是一种查找算法,通常用于在有序列表中查找特定元素。二分法的基本思想是将有序列表分成两部分,然后判断目标元素在哪一部分中,然后继续在该部分中查找,直到找到目标元素或者列表为空。下面是一个示例,演示如何使用二分法查找元素:

# 定义一个二分法函数
def binary_search(arr, target):
    low = 0
    high = len(arr) - 1
    while low <= high:
        mid = (low + high) // 2
        if[mid] == target:
            return mid
        elif arr[mid] < target:
            low = mid + 1
        else:
            high = mid - 1
    return -1

# 调用二分法函数
arr = [1, 3, 4, 5, 6, 7, 8, 9]
target = 5
result = binary_search(arr, target)
if result != -1:
    print("元素在索引%d处" % result)
else:
    print("元素不在列表中")

在这个示例中,我们定义了一个二分法函数binary_search,它接受一个有序列表arr和一个目标元素target,并返回目标元在列表中的索引。如果目标元素不在列表中,则返回-1。然后,我们调用二分法函数binary_search,并将列表和目标元素设置为[1, 3, 4, 5, 6, 7, 8, 9]和5,输出结果为“元素在索引3处”。