【Python快速上手(九)】

server/2024/9/25 17:22:47/

目录

  • Python快速上手(九)
    • Python3 推导式、命名空间
      • Python3 推导式
        • 1. 列表推导式
        • 2. 字典推导式
        • 3. 集合推导式
        • 4. 生成器表达式
        • 注意事项
      • Python3 命名空间
        • 1. 内置命名空间(Built-in Namespace)
        • 2. 全局命名空间(Global Namespace)
        • 3. 局部命名空间(Local Namespace)
        • 4. 闭包命名空间(Closure Namespace)
        • 5. 类命名空间(Class Namespace)
        • 6. 实例命名空间(Instance Namespace)
        • 注意事项

Python快速上手(九)

Python3 推导式、命名空间

Python3 推导式

Python 推导式是一种简洁而强大的语法,用于快速构建数据结构(如列表、字典、集合等),从而使代码更加简洁和易读。Python 支持列表推导式、字典推导式、集合推导式和生成器表达式等几种推导式。

1. 列表推导式

列表推导式允许你快速构建一个列表,通常是通过对现有列表进行操作、筛选和转换。
列表推导式格式为:

python">[表达式 for 变量 in 列表] 
[out_exp_res for out_exp in input_list]或者 [表达式 for 变量 in 列表 if 条件]
[out_exp_res for out_exp in input_list if condition]
out_exp_res:列表生成元素表达式,可以是有返回值的函数。
for out_exp in input_list:迭代 input_list 将 out_exp 传入到 out_exp_res 表达式中。
if condition:条件语句,可以过滤列表中不符合条件的值。
python"># 构建一个包含 1 到 10 的平方的列表
squares = [x**2 for x in range(1, 11)]# 构建一个只包含偶数的列表
evens = [x for x in range(1, 11) if x % 2 == 0]
2. 字典推导式

字典推导式允许你快速构建一个字典,通常是通过对现有字典进行操作、筛选和转换。
字典推导基本格式:

python">{ key_expr: value_expr for value in collection }{ key_expr: value_expr for value in collection if condition }
python"># 构建一个将列表中的值映射为它们的平方的字典
squares_dict = {x: x**2 for x in range(1, 6)}# 构建一个将列表中的值映射为它们的奇偶性的字典
parity_dict = {x: 'even' if x % 2 == 0 else 'odd' for x in range(1, 6)}
3. 集合推导式

集合推导式允许你快速构建一个集合,通常是通过对现有集合进行操作、筛选和转换。
集合推导式基本格式:

python">{ expression for item in Sequence }{ expression for item in Sequence if conditional }
python"># 构建一个包含 1 到 10 的平方的集合
squares_set = {x**2 for x in range(1, 11)}# 构建一个只包含偶数的集合
evens_set = {x for x in range(1, 11) if x % 2 == 0}
4. 生成器表达式

生成器表达式与列表推导式类似,但它生成的是一个生成器而不是列表,适用于处理大量数据时,可以节省内存。

python"># 构建一个生成器,用于生成 1 到 10 的平方
squares_generator = (x**2 for x in range(1, 11))# 使用生成器表达式生成平方值
for square in squares_generator:print(square)
注意事项
  • 推导式使代码更加简洁和可读,但过度使用可能会降低可读性,所以要适度使用。
  • 在处理大量数据时,考虑使用生成器表达式来节省内存。
  • 推导式是 Python 编程中常用的一种技巧,熟练掌握能够提高编码效率。

Python3 命名空间

命名空间(Namespace)是 Python 中用来存放变量名和其对应对象的映射关系的结构,它定义了变量名在程序中的可见范围和生命周期。理解命名空间的概念对于理解 Python 中的变量作用域、模块、类和函数等概念非常重要。

1. 内置命名空间(Built-in Namespace)

内置命名空间包含了 Python 解释器自带的内置函数和内置对象,例如 print()、len()、int、list 等。

python"># 内置命名空间示例
print(len([1, 2, 3]))  # 调用内置函数 len()
x = int("10")          # 使用内置函数 int()
2. 全局命名空间(Global Namespace)

全局命名空间是指在模块层级定义的命名空间,包含了在模块顶层定义的变量、函数和类等。

python"># 全局命名空间示例
x = 10                 # 全局变量
def func():print("Hello")     # 全局函数
class MyClass:pass               # 全局类
3. 局部命名空间(Local Namespace)

局部命名空间是指在函数、方法或类的内部定义的命名空间,包含了在函数内部定义的变量、函数和类等。

python"># 局部命名空间示例
def func():y = 20             # 局部变量print(y)
4. 闭包命名空间(Closure Namespace)

闭包命名空间是指内部函数可以访问外部函数中定义的变量的命名空间,这种情况通常出现在闭包(Closure)中。

python"># 闭包命名空间示例
def outer():x = 10def inner():print(x)       # 内部函数可以访问外部函数的变量 xreturn inner
5. 类命名空间(Class Namespace)

类命名空间是指在类定义中的命名空间,包含了在类定义中定义的类变量、类方法和类属性等。

python"># 类命名空间示例
class MyClass:class_var = 100    # 类变量def method(self):print("Method") # 类方法
6. 实例命名空间(Instance Namespace)

实例命名空间是指在类的实例化过程中创建的命名空间,包含了实例对象的属性和方法。

python"># 实例命名空间示例
class MyClass:def __init__(self, x):self.x = x      # 实例变量def method(self):print(self.x)   # 实例方法
注意事项
  • Python 中的命名空间是一种映射关系,它定义了变量名和对象之间的对应关系。
  • Python 中的命名空间是有层次关系的,内置命名空间位于最顶层,而局部命名空间位于最底层。
  • 在 Python 中,可以通过各种方式访问不同命名空间中的变量和对象,例如使用全局变量、函数参数、global 关键字等。

http://www.ppmy.cn/server/27059.html

相关文章

springboot配置WebMvcConfigurationSupport

一、在spring里有四个mvc配置类 1、mvc配置类 WebMvcConfigurer WebMvcConfigurerAdapter WebMvcConfigurationSupport WebMvcAutoConfiguration 2、WebMvcConfigurer为接口 3、WebMvcConfigurerAdapter是WebMvcConfigurer的实现类,且大部分为空方法,…

FreeLearning 安全译文集翻译完毕

高级基础设施渗透测试高度安全环境下的高级渗透测试AWS 渗透测试为高级渗透测试构建虚拟渗透实验室Python 高效渗透测试BurpSuite 秘籍Python 渗透测试实用指南渗透测试即时入门IOT 渗透测试秘籍渗透测试学习指南Python 渗透测试学习指南Python Web 渗透测试学习手册精通机器学…

Pycharm新建工程时使用Python自带解释器的方法

Pycharm新建工程时使用Python自带解释器的方法 新建Project时最好不要新建Python解释器,实践证明,自己新建的Python解释器容易出现各种意想不到的问题。 那么怎样使用Python安装时自带的解释器呢? 看下面的三张截图大家就清楚了。 我的Pyth…

前端项目学习记录3:mock接口

1.下载mock接口 pnpm i vite-plugin-mock 2.配置vite.config.ts import { defineConfig } from vite import vue from vitejs/plugin-vue import path from "path"; //引入svg需要用到的插件 import { createSvgIconsPlugin } from vite-plugin-svg-icons //mock插…

C# Windows Forms 应用程序中连接到 数据库

要在 C# Windows Forms 应用程序中连接到 SQL Server,你需要使用 .NET Framework 的 System.Data.SqlClient 命名空间,这个命名空间提供了连接和操作 SQL Server 的工具。以下是一个简单的示例,展示如何建立连接并执行 SQL 查询。 步骤 1: 添…

创建SpringBoot和RabbitMQ的整合项目

文章目录 创建SpringBoot和RabbitMQ的整合项目首先快速创建一个maven项目引入SpringBoot整合rabbitMQ的依赖在src/main目录下创建resources目录并引入配置文件写消息发送者MessageSender写消息接收者MessageReceiver写RabbitMQConfig配置类写SpringBoot启动主类CommandLineRunn…

ChatGPT的AI“记忆”可以记住付费客户的偏好

通过记住有关 ChatGPT Plus 订阅者的详细信息,OpenAI 的聊天机器人添加了更多个人助理风格的功能 OpenAI 在今年二月宣布了 “记忆 ”功能,该功能允许 ChatGPT 更永久地存储查询、提示和其他自定义功能。当时,只有 “一小部分 ”用户可以使用…

opencv基础篇 ——(十一)常用照片处理函数

改善图像的亮度(illuminationChange) 用于改善光照条件不佳导致的图像对比度低下或局部过暗/过亮的问题。该函数通过模拟全局和局部光照变化,旨在提高图像的整体视觉质量,特别是在低光照条件下,使得图像中的重要细节更加清晰可见。 函数原型…