【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 = 10
    def inner():
        print(x)       # 内部函数可以访问外部函数的变量 x
    return 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.mfbz.cn/a/585272.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++-8

1.C中list容器实现 using namespace std;int main() {list<int> l1;l1.assign(2,3);list<int>::iterator n l1.begin();for(n l1.begin();n!l1.end();n){cout << *n << "\t";}cout << endl;cout << "last one " &l…

【书生浦语第二期实战营学习笔记作业(七)】

课程文档&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/opencompass/readme.md 课程作业&#xff1a;https://github.com/InternLM/Tutorial/blob/camp2/opencompass/homework.md OpenCompass 大模型评测实战 1. 大模型的评测1.1 大模型评测如何促进发展1.2 大…

Flink checkpoint 源码分析- Flink Checkpoint 触发流程分析

序言 最近因为工作需要在阅读flink checkpoint处理机制&#xff0c;学习的过程中记录下来&#xff0c;并分享给大家。也算是学习并记录。 目前公司使用的flink版本为1.11。因此以下的分析都是基于1.11版本来的。 在分享前可以简单对flink checkpoint机制做一个大致的了解。 …

城会玩,Selenium+Docker成功解决这一大难题

01、需求背景 日常测试中会遇到对web应用进行UI自动化的测试场景&#xff0c;一般常用的工具是使用Selenium&#xff0c;一套简单的UI自动化架构如下&#xff1a; 上图即为简单搭建的一套UI自动化测试架构&#xff0c;但 串行执行测试用例&#xff1a; 一台机器只能安装一个…

[Meachines][Hard]FormulaX

Main $ nmap -sC -sV 10.10.11.6 --min-rate 1000 # echo 10.10.11.6 formula.htb>>/etc/hosts 创建一个新用户,登录 来到聊天窗口,发现普通用户无法使用 来到联系页面,测试跨站 {"first_name":"<img srchttp://10.10.16.6/s-h4ck13/>",&qu…

form1弹出子窗体form2,拖动子窗体判断是否离开父窗体区域,含源码(学习笔记)

一、效果&#xff08;进入和离开&#xff09; 子窗体到达父窗体边缘时变色。 二、代码分析 判断父窗体的目的&#xff0c;可以控制子窗体要随父窗体走。上面代码需要加以处理。 如&#xff1a;this.Location new Point(parentPoint.X distanceFromEdge, this.Location.Ydis…

给rwkv_pytorch增加rag

RAG 参考地址语义模型地址选择该模型使用方法方法二安装方法下载模型到本地材料材料处理语义分割计算得分根据得分 分割文本 构建向量数据库问答匹配问答整合 参考地址 RAG简单教程 分割策略 语义模型地址 hf 选择该模型 gte 使用方法 import torch.nn.functional as F…

AQS共享模式之CyclicBarrier

概念&#xff1a;CyclicBarrier翻译为循环(屏障/栅栏)&#xff0c;当一组线程到达一个屏障&#xff08;同步点&#xff09;时被阻塞&#xff0c;直到最后一个线程到达屏障时&#xff0c;屏障才会打开&#xff0c;所有被屏障拦截的线程才会继续工作。 设计目的&#xff1a;和Co…

当你老了:献给40岁以上还在求职的朋友

怪盗团团长按&#xff1a;本文作者是我的一位老朋友&#xff0c;他已经年过四十&#xff0c;在国内职场&#xff0c;算是不折不扣的中老年人了。难能可贵的是&#xff0c;最近他还换了工作&#xff0c;去了一个自己不熟悉的新行业奋斗。 我一直很纳闷&#xff0c;为何在中国&am…

该安装包不适配当前高性能处理器 请使用 64 位安装包

今天一台用户的一台手机报错&#xff0c;如下&#xff1a; 该安装包不适配当前高性能处理器 请使用 64 位安装包 查了下&#xff0c;网上也有人反馈该问题 https://ask.dcloud.net.cn/question/186865 最后在贴吧上发现答案&#xff1a;https://tieba.baidu.com/p/8773132859 …

Bluetooth Profile 蓝牙协议栈总结

GAP-Generic Access Profile 控制设备广播和连接 GAP profile 的目的是描述&#xff1a; Profile rolesDiscoverability modes and proceduresConnection modes and proceduresSecurity modes and procedures 设备连接过程 LE中GAP有4种角色&#xff1a;BroadcasterObserv…

使用groovy+spock优雅的进行单测

使用groovyspock优雅的进行单测 1. groovyspock示例1.1 简单示例1.2 增加where块的示例1.3 实际应用的示例 2. 单测相关问题2.1 与SpringBoot融合2.2 单测数据与测试数据隔离2.3 SQL自动转换&#xff08;MySQL -> H2&#xff09; 参考 Groovy是一种基于JVM的动态语言&#x…

LVGL自定义滑动

触摸和编码器都可以操作 typedef struct {lv_obj_t* obj;int16_t x;int16_t y;int16_t width;int16_t height; }pos_and_size_t;typedef struct {lv_obj_t* obj;lv_coord_t height;lv_coord_t width;lv_coord_t width_pad;lv_coord_t height_pad;lv_coord_t child_widget;lv_co…

2024王炸组合!基于Mamba的遥感图像处理引爆顶会!

对比传统方法&#xff0c;基于Mamba的遥感图像处理在计算效率和分析精度方面遥遥领先&#xff0c;Mamba遥感也成为了论文研究的新方向。 具体来说&#xff0c;在融合高分辨率的空间图像和低分辨率的光谱图像获取综合信息方面&#xff0c;Mamba可以提升性能&#xff0c;同时保持…

【Harmony3.1/4.0】笔记七-选项卡布局

概念 当页面信息较多时&#xff0c;为了让用户能够聚焦于当前显示的内容&#xff0c;需要对页面内容进行分类&#xff0c;提高页面空间利用率。Tabs组件可以在一个页面内快速实现视图内容的切换&#xff0c;一方面提升查找信息的效率&#xff0c;另一方面精简用户单次获取到的…

MySQL CRUD操作

前言&#x1f440;~ 上一章我们介绍了数据库的一些基础操作&#xff0c;关于如何去创建一个数据库&#xff0c;还有使用数据库&#xff0c;删 除数据库以及对表进行的一些基础操作&#xff0c;今天我们学习CRUD操作 俗称&#xff08;增删改查&#xff09; 如果各位对文章的内…

Objenesis 底层

Objenesis 简介 Objenesis 是一个 Java 库&#xff0c;用于在不调用构造方法的情况下创建对象。由于绕过了构造方法&#xff0c;所以无法调用构造方法中的初始化逻辑。相应的&#xff0c;Objenesis 无法创建抽象类、枚举、接口的实例对象。 起源 与其称之为起源&#xff0c;…

基于ST的STM32F407ZGT6嵌入式uCOS-III V3.08 操作系统工程实验

1.基于的开发板 2.原理图截图: 3.主控芯片框图与性能特点: High-performance foundation line, Arm Cortex-M4 core with DSP and FPU, 1 Mbyte of Flash memory, 168 MHz CPU, ART Accelerator, Ethernet, FSMC The STM32F405xx and STM32F407xx family is based on the high…

多家企业机密数据遭Lockbit3.0窃取,亚信安全发布《勒索家族和勒索事件监控报告》

本周态势快速感知 本周全球共监测到勒索事件87起&#xff0c;与上周相比勒索事件大幅下降。美国依旧为受勒索攻击最严重的国家&#xff0c;占比45%。 本周Cactus是影响最严重的勒索家族&#xff0c;Lockbit3.0和Bianlian恶意家族紧随其后&#xff0c;从整体上看Lockbit3.0依旧…

Meltdown 以及Linux KPTI技术简介

文章目录 前言一、Introduction二、 Background2.1 Out-of-order execution2.2 Address Spaces2.3 Cache Attacks 三、A Toy Example四、Building Blocks of the Attack4.1 Executing Transient Instructions4.2 Building a Covert Channel 五、Meltdown5.1 Attack Description…
最新文章