zoukankan      html  css  js  c++  java
  • BA12-python扩展内容

    python扩展内容:

    !!!!!PYTHON的open(str,mode [,encoding='utf-8']) 协助中文解码,否则可能会读出乱码

    Lambda 表达式

    你可以使用 Lambda 表达式创建匿名函数,即没有名称的函数。lambda 表达式非常适合快速创建在代码中以后不会用到的函数。尤其对高阶函数或将其他函数作为参数的函数来说,非常实用。

    我们可以使用 lambda 表达式将以下函数

    def multiply(x, y):
        return x * y
    

    简写为:

    double = lambda x, y: x * y
    

    Lambda 函数的组成部分

    1. 关键字 lambda 表示这是一个 lambda 表达式。
    2. lambda 之后是该匿名函数的一个或多个参数(用英文逗号分隔),然后是一个英文冒号 :。和函数相似,lambda 表达式中的参数名称是随意的。
    3. 最后一部分是被评估并在该函数中返回的表达式,和你可能会在函数中看到的 return 语句很像。

    Chunker

    如果可迭代对象太大,无法完整地存储在内存中(例如处理大型文件时),每次能够使用一部分很有用。

    实现一个生成器函数 chunker,接受一个可迭代对象并每次生成指定大小的部分数据。

    如下所示地调用该函数:

    for chunk in chunker(range(25), 4):
        print(list(chunk))
    

    应该会输出:

    [0, 1, 2, 3]
    [4, 5, 6, 7]
    [8, 9, 10, 11]
    [12, 13, 14, 15]
    [16, 17, 18, 19]
    [20, 21, 22, 23]
    [24]
    def chunker(iterable, size):
        """Yield successive chunks from iterable of length size."""
        for i in range(0, len(iterable), size):
            yield iterable[i:i + size]
    
    for chunk in chunker(range(25), 4):
        print(list(chunk))

    Zip 和 Enumerate

    zip 和 enumerate 是实用的内置函数,可以在处理循环时用到。

    Zip

    zip 返回一个将多个可迭代对象组合成一个元组序列的迭代器。每个元组都包含所有可迭代对象中该位置的元素。例如,

    list(zip(['a', 'b', 'c'], [1, 2, 3])) 将输出 [('a', 1), ('b', 2), ('c', 3)].

    正如 range() 一样,我们需要将其转换为列表或使用循环进行遍历以查看其中的元素。

    你可以如下所示地用 for 循环拆分每个元组。

    letters = ['a', 'b', 'c']
    nums = [1, 2, 3]
    
    for letter, num in zip(letters, nums):
        print("{}: {}".format(letter, num))
    

    除了可以将两个列表组合到一起之外,还可以使用星号拆分列表。

    some_list = [('a', 1), ('b', 2), ('c', 3)]
    letters, nums = zip(*some_list)
    

    这样可以创建正如之前看到的相同 letters 和 nums 列表。

    Enumerate

    enumerate 是一个会返回元组迭代器的内置函数,这些元组包含列表的索引和值。当你需要在循环中获取可迭代对象的每个元素及其索引时,将经常用到该函数。

    letters = ['a', 'b', 'c', 'd', 'e']
    for i, letter in enumerate(letters):
        print(i, letter)
    

    这段代码将输出:

    0 a
    1 b
    2 c
    3 d
    4 e

    读写文件

    以下是如何在 Python 中读写文件的方式。

    读取文件

    f = open('my_path/my_file.txt', 'r')
    file_data = f.read()
    f.close()
    
    1. 首先使用内置函数 open 打开文件。需要文件路径字符串。open 函数会返回文件对象,它是一个 Python 对象,Python 通过该对象与文件本身交互。在此示例中,我们将此对象赋值给变量 f
    2. 你可以在 open 函数中指定可选参数。参数之一是打开文件时采用的模式。在此示例中,我们使用 r,即只读模式。这实际上是模式参数的默认值。
    3. 使用 read 访问文件对象的内容。该 read 方法会接受文件中包含的文本并放入字符串中。在此示例中,我们将该方法返回的字符串赋值给变量 file_data
    4. 当我们处理完文件后,使用 close 方法释放该文件占用的系统资源。

    写入文件

    f = open('my_path/my_file.txt', 'w')
    f.write("Hello there!")
    f.close()
    
    1. 以写入 ('w') 模式打开文件。如果文件不存在,Python 将为你创建一个文件。如果以写入模式打开现有文件,该文件中之前包含的所有内容将被删除。如果你打算向现有文件添加内容,但是不删除其中的内容,可以使用附加 ('a') 模式,而不是写入模式。
    2. 使用 write 方法向文件中添加文本。
    3. 操作完毕后,关闭文件。

    With

    Python 提供了一个特殊的语法,该语法会在你使用完文件后自动关闭该文件。

    with open('my_path/my_file.txt', 'r') as f:
        file_data = f.read()
    

    该 with 关键字使你能够打开文件,对文件执行操作,并在缩进代码(在此示例中是读取文件)执行之后自动关闭文件。现在,我们不需要调用 f.close() 了!你只能在此缩进块中访问文件对象 f。

  • 相关阅读:
    使用Swagger为ASP.NET Core WebApi生成API文档
    TypeScript入门笔记(五)
    TypeScript入门笔记(四)
    TypeScript入门笔记(三)
    .net core WebAPI+EF 动态接收前台json,并动态修改数据库
    记走出自动化部署的第一步
    工厂模式
    使用bootstrap fileinput多文件拖拽上传的记录
    判断登录跳回原地址方法
    使用Microsoft Teams 搭建远程视频
  • 原文地址:https://www.cnblogs.com/PRCdefender/p/13971351.html
Copyright © 2011-2022 走看看