9 удивительных встроенных функций Python
Python — это мощный язык программирования, который поставляется с обширной библиотекой полезных встроенных функций. Эти функции могут не только сделать код более читабельным, но и значительно улучшить его производительность.
В этом посте я расскажу о девяти самых полезных встроенных функциях Python.
1. карта ()
map()
— это встроенная функция Python, которая принимает функцию и итерируемый объект в качестве аргументов, что позволяет выполнять функцию для каждого элемента внутри итерируемого объекта.
map(function, iterable)
map()
— хорошая альтернатива циклу for
, когда нам нужно выполнить операцию над каждым элементом этого цикла прямо и поэлементно. Примечательно, что в некоторых случаях map()
с точки зрения производительности лучше, чем цикл for
, поскольку map()
использует основные оптимизации и выполняет операции параллельно.
Предположим, у нас есть список строк, представляющих числа, и мы хотим преобразовать каждый элемент строки в соответствующее целочисленное значение.
numbers = ['1', '2', '3', '4', '5'] ## Traditional for loop result_for_loop = [] for num in numbers: result_for_loop.append(int(num)) ## map() result_map = list(map(int, numbers)) print(result_for_loop) # Output: [1, 2, 3, 4, 5] print(result_map) # Output: [1, 2, 3, 4, 5]
Важно отметить, что когда у вас есть сложная логика итерации или вам нужно включить условное ветвление в свой код, использование традиционного цикла for
часто бывает более подходящим, чем использование map()
.
Например, map()
не подходит, если в приведенном выше примере нам нужно проверить, подходит ли каждый элемент для преобразования в целое число. Чтобы map()
работал, нам нужна лямбда-функция, которая включает условную проверку, а также преобразование. Проблема в том, что это решение делает наш код менее читаемым по сравнению с традиционным цикломfor
.
## Traditional for loop numbers = ['1', '2', '3', 'four', '5'] result_for_loop = [] for num in numbers: if num.isdigit(): result_for_loop.append(int(num)) ## map() result_map = list(map(lambda num: int(num) if num.isdigit() else None, numbers))…