Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法攻略
Python匿名函数
Python中的匿名函数也称为lambda函数,它是一种没有名称的函数,通常于简单的函数定义。lambda函数可以接受任意数量的参数,但只能返回一个表达式的值。lambda函数的法如下:
lambda arguments: expression
其中,arguments是函数的参数,expression是函数的值。下面是一个示例,演示如何使用lambda函数:
# 定义一个lambda函数
f = lambda x: x * 2
# 调用lambda函数
print(f(3)) # 输出6
在这个示例中,我们了一个lambda函数,它接受一个参数x,并返回x的两倍。然后,我们调用lambda函数f,并将参数设置为3,输出结果为6。
Python排序函数
Python中的排序函数可以对列表、元组、字典等数据类型进行排序。Python中的排序函数有两种,分别是函数和sort方法。sorted函数可以对任意可迭代对象进行排序,而sort方法只能对列表进行排序。下面是一个示例,演示如何使用sorted函数和sort方法进行排序:
# 使用sorted函数进行排序
a = [3, 1, 4, 1, , 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()
(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,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, , 1, 5, 9, 2, 6, 5, 3, 5]
b = list(map(lambda x: x * 2, aprint(b) # 输出[6, 2, 8, 2, 10, 18, 4, 12, 10, 6, 10]
# 使用列表推导式进行映射
a = [3, 1, 4 1, , 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 return1
else:
return n * factorial(n - 1)
# 调用递归函数
print(factorial(5)) # 输出120
在这个示例中,我们定义了一个递归函数factorial,它计算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
[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, 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处”。
示例说明
Python排序函数示例
在上面的示例中,我们定义了一个a,然后使用sorted函数和sort方法对列表进行排序。输出结果都是按照从小到大的顺序排列的。这个示例演了如何使用Python中的排序函数对列表进行排序。
Python递归示例
在上面的示例中,我们定义了一个递归函数factorial,它计算n的阶乘。如果n等于0,则返回1,否则返回乘以factorial(n-1)的结果。然后,我们调用递归函数factorial,并将参数设置为5,输出结果为120。这个示演示了如何使用Python中的递归函数计算阶乘。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法 - Python技术站