zoukankan      html  css  js  c++  java
  • 重点来了!掌握这些Python技巧,将给你节省大量时间

    希望你们可以将这些技巧运用到项目中。尽管没有运行时的速度或性能优势,但是与从零开始实施此逻辑相比,这将为你节省大量时间。因此,言归正传,让我们来看这三点吧:

    1、拉姆达函数(Lambda Functions)

     拉姆达函数非常强大。当然,当必须以相同的方式清理多个列时,我们不会使用它,但这并不是经常遇到的情况。通常情况下,每个属性在清理后都需要自己的逻辑。 Lambda函数允许创建“匿名”函数。这基本上意味着可以快速生成特定函数,而无需使用pythonsdef来正确定义函数。 尽管如此,请记住Lambda函数主要被设计成one-liners,因此它应该用于简单的东西。对于更复杂的逻辑,则需要使用常规函数。 里将展示两个具体示例,通过这些示例,我们无需为所有项目定义函数,从而可以节省许少时间。虽然第一个示例可能不会在现实中常用,但值得一提。这就是对数字求平方。 

    #regular function
    def square_number(x):
        res = x ** 2
        return res# lambda function
    square = lambda x: x ** 2# results
    print('square_number(4): {}'.format(square_number(4)))
    print('square lambda: {}'.format(square(4)))>>> square_number(4):16
    >>> square lambda: 16

    上面的代码片段以常规方式和lambda函数的方式完成了相同逻辑的实现。虽然结果是一样的,但是lambda的单行看起来舒服多了! 第二个例子是关于检查数字是偶数或非偶数: 

    #regular function
    def is_even(x):
        if x % 2 == 0:
            return True
        else:
            return False
     
     
    # lambda function
    even = lambda x: x % 2 == 0# results
    print('is_even(4): {}'.format(is_even(4)))
    print('is_even(3): {}'.format(is_even(3)))
    print('even(4): {}'.format(even(4)))
    print('even(3): {}'.format(even(3)))>>> is_even(4): True
    >>> is_even(3): False
    >>> even(4): True
    >>> even(3): False

    再一次,同样的逻辑以两种方式实现。你来决定你喜欢哪一个吧。

     2、列表解析(List Comprehensions)

     简单来说,列表解析使我们可以使用其他符号创建列表。可以将其视为括号内的单行循环。 在做特征工程时,使用列表解析很方便。例如,假设我们在通过分析电子邮件标题来进行垃圾邮件检测,那么我们会想弄明白是否问号会在垃圾邮件中经常出现。如果用列表解析来实现的话,这将是一项非常简单的任务。 就不再进行更多的理论解释了。例子才是最重要的。 这里的例子选择声明一个常规函数,该函数将检查列表中以某个字符(在这种情况下为“ a”)开头的项目。实施后,再用列表解析执行相同的操作。猜猜哪个会写起来更快呢? 

    lst =['Acer', 'Asus', 'Lenovo', 'HP']# regular function
    def starts_with_a(lst):
        valids = []
     
        for word in lst:
            if word[0].lower() == 'a':
                valids.append(word)
     
        return valids
     
     
    # list comprehension
    lst_comp = [word for word in lst if word[0].lower() == 'a']# results
    print('starts_with_a: {}'.format(starts_with_a(lst)))
    print('list_comprehension: {}'.format(lst_comp))>>> starts_with_a:['Acer', 'Asus']
    >>> list_comprehension: ['Acer', 'Asus']

    如果是第一次看到这样的方式,语法可能会有点混乱。但是当你每天都在写这样的函数时,它们会越来越吸引你,看你能把多少复杂的东西应用进去。

     3、Zip函数

     这是在实践中很少看到的内置python方法之一。从数据科学家的角度来看,它使我们能够同时迭代两个或多个列表。在处理日期和时间时,这可以派上用场。 例如,有一个属性表示某个事件的开始时间,而第二个属性表示该事件的结束时间时,为了进一步分析,几乎总是需要计算它们之间的时间差。而到目前为止,zip函数是最简单的方法。 例如,来比较一些虚构公司和虚构地区的一周销售日期: 

    sales_north= [350, 287, 550, 891, 241, 653, 882]
    sales_south = [551, 254, 901, 776, 105, 502, 976]for s1, s2 in zip(sales_north,sales_south):
        print(s1 — s2)>>> -201
        33
        -351
        115
        136
        151
        -94

    看看这有多么简单吧。可以应用相同的逻辑同时迭代3个数组,只需要在括号中添加“ s3”和其他一些列表名称即可。 Pure Python真的非常强大。了解其功能后,就不再需要专门的库来存放所有内容了。这将帮助你成为一名更好的程序员。

  • 相关阅读:
    python接口测试
    python selenium 判断元素是否可见
    python学习之天气爬虫
    python学习之图片爬虫
    python学习之小说爬虫
    webdriver学习——css调试,jquery调用
    webdriver学习——百度设置
    bat中获取当前路径
    搭建ant脚本,全量/增量/减量包
    查询数据库中各个类型的方法名称
  • 原文地址:https://www.cnblogs.com/daniumiqi/p/12096455.html
Copyright © 2011-2022 走看看