【Python快速上手(九)】

目录

  • 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. 列表推导式

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

[表达式 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:条件语句,可以过滤列表中不符合条件的值。
# 构建一个包含 1 到 10 的平方的列表
squares = [x**2 for x in range(1, 11)]# 构建一个只包含偶数的列表
evens = [x for x in range(1, 11) if x % 2 == 0]
2. 字典推导式

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

{ key_expr: value_expr for value in collection }{ key_expr: value_expr for value in collection if condition }
# 构建一个将列表中的值映射为它们的平方的字典
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. 集合推导式

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

{ expression for item in Sequence }{ expression for item in Sequence if conditional }
# 构建一个包含 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. 生成器表达式

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

# 构建一个生成器,用于生成 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 等。

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

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

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

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

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

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

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

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

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/830939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSDN如何在个人主页开启自定义模块|微信公众号

目前只有下面三种身份才具有这个功能。 VIP博客专家企业博客 栏目内容不知道怎么写HTML的,可以联系我帮你添加

Maven入门:1.简介与环境搭建

一.简介与环境搭建 1.Maven:用于自动化构建项目(按照企业主流模板构建完善的项目结构)和管理项目依赖(依赖就是项目的jar包,通过配置的方式进行添加和管理,自动下载和导入)的工具。即更加方便构…

【JDBC】数据库连接池

1 简介 1.1 概念 持有多个数据库连接的容器,当程序需要操作数据库的时候,直接可以从池中取出连接,使用完成之后,再放回到池中。 1.2 优点 节省资源。如果每次访问数据库,都需要创建新的连接,在使用完成后…

bbPress 中文汉化包,WordPress插件

汉化包下载地址:bbPress 中文汉化包.zip bbPress论坛插件 bbPress 是一款简单易用的 WordPress 论坛程序,由 WordPress 创建者开发,简单易用且完全可自定义。bbPress 可用于创建在线客户服务帮助渠道和交流平台。bbPress 是使用最多的WordP…

在IDEA中使用.env文件配置信息

在软件开发过程中,经常需要使用配置信息来指定应用程序的行为,例如数据库连接参数、API密钥等。而将这些敏感信息硬编码在代码中是不安全的,因此通常会将其存储在配置文件中。 .env文件是一种常见的配置文件格式,它可以存储键值对…

C 408—《数据结构》图、查找、排序专题考点(含解析)

目录 Δ前言 六、图 6.1 图的基本概念 6.2 图的存储及基本操作 6.3 图的遍历 6.4 图的应用 七、查找 7.2 顺序查找和折半查找 7.3 树型查找 7.4 B树和B树 7.5 散列表 八、排序 8.2 插入排序 8.3 交换排序 8.4 选择排序 8.5 归并排序和基数排序 8.6 各种内部排序算法的比较及…

Go语言nil概念,make与new的区别

nil 在Go语言中,nil 是一种特殊值,主要用于指针、接口、切片、映射、通道这五种引用类型。与其它类型的默认值(零值)有着显著的区别: nil: nil 表示没有具体的值或不存在的对象引用。它可以赋值给指针、切…

表格中斜线的处理

此处的斜线,不是用表格写的,但是也适用于表格,只是需要更改表格的样式,可以 按照如下处理,即可 呈现的效果:如图所示 template部分: <div class"header_detail custom"><div class"right">节次</div><div class"left">…

C/C++实现高性能并行计算——1.pthreads并行编程(中)

系列文章目录 pthreads并行编程(上)pthreads并行编程(中)pthreads并行编程(下)使用OpenMP进行共享内存编程 文章目录 系列文章目录前言一、临界区1.1 pi值估计的例子1.2 找到问题竞争条件临界区 二、忙等待三、互斥量3.1 定义和初始化互斥锁3.2 销毁。3.3 获得临界区的访问权&…

windows11安装nginx

1.解压nginx安装包到没有中文的目录 2.双击运行nginx.exe 3.任务管理器查看是否有nginx进程 4.任务管理器->性能->资源监视器 5.网络->侦听端口&#xff0c;查看nginx侦听的端口&#xff0c;这里是90端口

大连宇都环境 | 成都5月水科技大会暨技术装备成果展览会

中华环保联合会水环境治理专业委员会 秘书处 王小雅 13718793867 —— 展位号&#xff1a;A09 —— 一、企业介绍 大连宇都环境成立于2002年&#xff0c;公司20年 MBBR填料产品及工艺技术&#xff0c;&#xff0c;构建了研发、制造、设计、工程、运营链式服务能力&#xff…

数据赋能(73)——数据要素:特征

生产要素中的数据要素具有一系列基本特征&#xff0c;这些特征使得数据在现代经济活动中发挥着越来越重要的作用。数据要素的主要特征如下图所示。 数据已经成为关键的生产要素&#xff0c;数据要素的基本特征可以概括为&#xff1a;虚拟性、非消耗性、非稀缺性、非均质性、排他…

selinux 基础知识

目录 概念 作用 SELinux与传统的权限区别 SELinux工作原理 名词解释 主体&#xff08;Subject&#xff09; 目标&#xff08;Object&#xff09; 策略&#xff08;Policy&#xff09; 安全上下文&#xff08;Security Context&#xff09; 文件安全上下文查看 先启用…

冰蓄冷空调系统介绍

冰蓄冷空调系统介绍 1.空调系统的发展历程 人类早在古代就意识到了控制室内温度的重要性&#xff0c;但直到19世纪末&#xff0c;才出现了第一个商业化的空调系统。从那时起&#xff0c;空调技术一直在不断发展&#xff0c;迅速成为现代生活中不可或缺的一部分。传统的空调系…

如何解决网络应用运行中的审核问题【系列研究预告】

目前互联网是非常发达的&#xff0c;但是随着技术的发展&#xff0c;有些问题逐渐变得严重。对于一般企业而言&#xff0c;一个比较重要的问题就是审核准确性和成本问题。 比如知乎的审判官&#xff0c;我本人是最早的一批审判官&#xff0c;然而多年下来的经历却很让人感到无…

数据结构—C语言实现双向链表

目录 1.双向带头循环链表 2.自定义头文件&#xff1a; 3.List.cpp 文件 3.1 newnode()函数讲解 3.2 init() 函数 初始化 3.3 pushback()函数 尾插 3.4 pushfront()函数 头插 3.5 popback() 尾删 3.6 popfront() 函数 头删 3.7 insert()函数 在pos之后插入 3.8 popbac…

ES与关系数据库的同步练习(hotel_admin)

目录 1 es与数据库同步的方法2 实践 1 es与数据库同步的方法 方式一&#xff1a;同步调用 优点&#xff1a;实现简单&#xff0c;粗暴缺点&#xff1a;业务耦合度高 方式二&#xff1a;异步通知&#xff08;选择这个折中下&#xff09; 优点&#xff1a;低耦合&#xff0c;…

[C++]11版本新特性4:包装器:function、bind

前言 本文将介绍包装器&#xff08;适配器&#xff09; 引入 我们之前接触过函数指针、仿函数、lambda 但他们各有优劣&#xff0c;有没有一种方法可以对众多类型进行打包封装&#xff0c;这样就可以提高效率了 那就是function包装器 包装器 function 包装器本质是一个类…

汇编语言-jcxz指令和loop指令

jcxz指令&#xff1a; jcxz 是有条件转移指令&#xff0c; 所有的有条件转移指令都是短转移&#xff0c; 在对应的机器码中包含转移的位移&#xff0c;而不是目的地址 对 IP 的修改范围都为&#xff1a; -128-127 指令格式&#xff1a;jcxz 标号 &#xff08;如果 (cx)0 &…

uniapp 对接 Apple 登录

由于苹果要求App使用第三方登录必须要求接入Apple登录 不然审核不过 所以&#xff1a; 一、勾选苹果登录 二、 设置AppId Sign In Apple 设置完成重新生成描述文件 &#xff01;&#xff01;&#xff01;&#xff01;证书没关系 示例代码&#xff1a; async appleLogin…