Мало знаний, большой вызов! Эта статья участвует в "Необходимые знания для программистов«Творческая деятельность.
Привет всем, яодна чаша в неделю, передняя часть, которая не хочет быть пьяной (завернутой). Если написанной статье посчастливилось получить вашу благосклонность, мне очень повезло~
Встроенные функции высшего порядка Python
map()
map()
Будет отображать указанную последовательность в соответствии с предоставленной функцией
формат синтаксиса
map(function, iterable, ...)
первый параметрfunction
вызывается с каждым элементом в последовательности аргументовfunction
функция,
второй параметрiterable
одна или несколько последовательностей
Возвращает новый список, содержащий значение, возвращаемое каждой функциональной функцией.
образец кода
list1 = [1, 2, 4, 5, 56, 12, 5, 2, 34]
# 生成一个函数
def func(lt): # 将偶数返回,奇数+1返回
if lt % 2 == 0:
return lt
else:
return lt + 1
list2 = map(func, list1) # 千万不能加()
# 使用lambda关键字
list3 = map(lambda i: i if i % 2 == 0 else i + 1, list1)
print(list(list3)) # [2, 2, 4, 6, 56, 12, 6, 2, 34]
print(list(list2)) # [2, 2, 4, 6, 56, 12, 6, 2, 34]
функция уменьшения()
Функция reduce() является встроенной функцией системы в Python2x и была включена в Python3x.functools
в библиотеке
reduce()
Функция накапливает элементы в последовательности аргументов.
Функция выполняет следующие операции со всеми данными в наборе данных (связный список, кортеж и т. д.): используйте функциональную функцию (с двумя параметрами), переданную для сокращения, для работы с первым и вторым элементами в наборе и получайте Затем результат объединяется с третьими данными для использования функциональной функции, и, наконец, получается результат.
формат синтаксиса
reduce(function, iterable[, initializer])
function
-- функция с двумя параметрами
iterable
-- итерируемый объект
initializer
-- необязательный, начальный параметр
Возвращает результат вычисления функции.
образец кода
from functools import reduce
list1 = [1, 2, 3, 4, 5, 6, 7]
value = reduce(lambda x, y: x + y, list1)
print(value) # 28 = 1+2+3+4+5+6+7
Будет хранить результат вычисления в x, накапливая каждый раз. инициализатор должен установить начальное значение x
функция фильтра()
filter()
Функция используется для фильтрации последовательности, отфильтровывания элементов, не соответствующих условиям, и возврата объекта итератора.Если вы хотите преобразовать в список, вы можете использоватьlist()для преобразования.
Он получает два параметра, первый — это функция, второй — последовательность, каждый элемент последовательности передается в качестве параметра функции для оценки, затем возвращает True или False и, наконец, помещает элемент, который возвращает True, в новый список.
Грамматические структуры
filter(function, iterable)
function
-- Судебная функция.
iterable
-- Итерируемые объекты.
возвращает итерируемый объект
функция сортировки()
sorted()
Функция сортирует все итерируемые объекты и возвращает новый список.
Грамматические структуры
sorted(iterable, cmp=None, key=None, reverse=False)
iterable
-- Итерируемые объекты.
cmp
-- Функция сравнения, имеет два параметра, значения параметров берутся из итерируемого объекта, правила, которым должна следовать эта функция, если больше возвращает 1, если меньше возвращает -1, и возвращает 0, если он равен.
key
-- В основном используется для сравнения элементов. Параметр всего один. Параметр конкретной функции берется из итерируемого объекта, а для сортировки указывается элемент в итерируемом объекте.
reverse
-- правила сортировки,reverse = True
в порядке убывания,reverse = False
По возрастанию (по умолчанию).
Вернуть переупорядоченный список.
образец кода
students = [
{'name': 'tom', 'age': 20},
{'name': 'lucy', 'age': 15},
{'name': 'lily', 'age': 13},
{'name': 'mark', 'age': 21},
{'name': 'jack', 'age': 13},
{'name': 'steven', 'age': 18},
]
# 找出所有年龄大于18岁学生
result = filter(lambda x: x['age'] > 18, students)
print(list(result)) # [{'name': 'tom', 'age': 20}, {'name': 'mark', 'age': 21}]
# 按照年龄从小到大排序
students = sorted(students, key=lambda x: x['age'], reverse=True) # 利用key
print(students)
'''
[{'name': 'mark', 'age': 21}, {'name': 'tom', 'age': 20},
{'name': 'steven', 'age': 18}, {'name': 'lucy', 'age': 15},
{'name': 'lily', 'age': 13}, {'name': 'jack', 'age': 13}]
'''