美文网首页大数据 爬虫Python AI Sql
这3个高级Python函数,不能再被你忽略了!

这3个高级Python函数,不能再被你忽略了!

作者: 头顶一根发的程序猿 | 来源:发表于2019-11-14 13:59 被阅读0次

Python其实也可以带来很多乐趣。重新审视一些一开始并不被人们熟知的内置函数并没有想象中那么难,但为什么要这么做呢?今天,本文就来仔细分析3个在日常工作中或多或少都会用到、但是大部分时间都被忽略的Python函数。

虽然它们可能不会节省大量的时间(如果了解了背后的具体逻辑),但是会使代码看起来更简洁明了。也许这听起来没什么大不了的,但长久来看,可以使读者受益匪浅。从第一个函数开始吧!

  1. map()

map()是一个内置的Python函数,用于将一个函数应用于元素序列(如列表或字典)。它可能是进行数据操作的最简单易读的方法。

下面的示例旨在求出列表中数字的平方数。首先,必须明确所使用的函数。接下来,笔者展示并对比了使用map()和不使用map()的方法,即python和非python的方法。

nums = [1, 2, 3, 4, 5]# 

this function will calculate square
def square_num(x): 
    return x**2

# non-pythonic approach
squares = []
for num in nums:
    squares.append(square_num(num))
 
print('Non-Pythonic Approach: ', squares)

# pythonic approach
x = map(square_num, nums)
print('Pythonic Approach: ', list(x))

输出本质上是相同的,但python方法明显更加简洁,过程也不需要循环。

  1. zip ()

zip()是笔者最中意使用的函数之一。它允许用户同时迭代两个或多个列表。这个功能在处理日期和时间问题时都十分有用。

例如,如果每天在工作中使用它的话,当用户就有第一个属性时表示该事件的开始时间,当有第二个属性时表示该事件的结束时间。进一步想想,工作中总是需要计算事件之间的时间差的,而zip是迄今为止最简单的实现方法。

范例中创建了两个包含数字的列表,任务是对相应的元素求和:

first = [1, 3, 8, 4, 9]
second = [2, 2, 7, 5, 8]

# Iterate over two or more list at the same time
for x, y in zip(first, second):
    print(x + y)

这样既简单又干净。

  1. filter()

filter()函数在某种程度上类似于map()函数——也是将一个函数应用于某个序列,不同之处在于filter()只返回值为True的元素。

在如下的示例中,笔者创建了一个任意数字列表和一个函数,如果该数字是偶数,该函数将返回到True。同样,笔者将演示如何以非python和python方式执行该操作。

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# Will return true if input number is even
def even(x):
    return x % 2 == 0

# non-pythonic approach
even_nums = []
for num in numbers:
    if even(num):
        even_nums.append(num)
 
print('Non-Pythonic Approach: ', even_nums)

# pythonic approach
even_n = filter(even, numbers)
print('Pythonic Approach: ', list(even_n))

同样,python方法更简洁、更可读——这是读者学会后会终身受益的东西。

相关文章

  • 这3个高级Python函数,不能再被你忽略了!

    Python其实也可以带来很多乐趣。重新审视一些一开始并不被人们熟知的内置函数并没有想象中那么难,但为什么要这么做...

  • Python入门

    Python3教程 安装Python 第一个Python程序 Python基础 函数 高级特性 函数式编程 模块 ...

  • Python实用教程系列——推导式和Lambda表达式

    上次推文我们一起学习了python中的高级函数——Python实用教程系列——高阶函数Map、Filter、Red...

  • Python的高级函数

    Python的高级函数 1. map函数 map(func, *itertables) 对itertables中...

  • 学习python的第三篇

    今天学习了python的高级函数filter,sorted 学习地址:廖雪峰的官方网站filter函数:filte...

  • python--函数

    python是面向对象的高级语言,函数是高级语言所必须的,所以,来看看函数。函数的定义: 其中:pass是表示不执...

  • 10、Python入门____语法入门(三)

    正文 1、函数 基本上所有的高级语言都支持函数,Python也不例外。Python不但能非常灵活地定义函数,而且本...

  • Python高级函数

    map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此...

  • python高级函数

    1.map()函数 格式:map(func, iter) 说明:1.接收两个参数:一个函数和一个可迭代对象 2...

  • python函数高级

    函数是Python内建支持的一种封装,通过把大段代码拆成函数,就可以把复杂任务分解成简单的任务,这种分解可以称之为...

网友评论

    本文标题:这3个高级Python函数,不能再被你忽略了!

    本文链接:https://www.haomeiwen.com/subject/virrictx.html