Python语法糖大全

server/2024/9/24 16:11:09/

本文汇集了一些常用的Python语法糖,供大家查询使用。

1. 集合与序列操作

  • 列表推导式:创建列表。
    python">[x**2 for x in range(10)]
    
  • 字典推导式:创建字典。
    python">{x: x**2 for x in range(10)}
    
  • 集合推导式:创建集合。
    python">{x**2 for x in range(10)}
    
  • 条件列表推导:在列表推导中使用条件表达式。
    python">[x for x in range(10) if x % 2 == 0]
    
  • 条件字典推导:在字典推导中使用条件表达式。
    python">{x: x**2 for x in range(10) if x % 2 != 0}
    
  • 生成器表达式:创建迭代器。
    python">(x**2 for x in range(10))
    
  • 字符串字面量:单引号或双引号表示的字符串。
    python">s = "This is a string in double quotes."
    
  • 原始字符串:使用 r 前缀表示,忽略转义字符。
    python">raw_str = r"New line is represented as \n"
    
  • 多行字符串:使用三个引号表示。
    python">multi_line_str = """This is a multi-linestring with two lines."""
    

2. 赋值与解包

  • 多重赋值:一次性赋值多个变量。
    python">a, b = 1, 2
    
  • 扩展的可迭代解包:函数调用中解包可迭代对象。
    python">*a, b = [1, 2, 3, 4]
    
  • 解包赋值:从序列中解包值赋给多个变量。
    python">a, *b, c = [0, 1, 2, 3, 4]
    

3. 函数与Lambda

  • 装饰器:修改函数或方法的行为。
    python">@my_decorator
    def say_hello():print("Hello!")
    
  • lambda 函数:创建匿名函数。
    python">add = lambda x, y: x + y
    
  • 关键字参数:使用 **kwargs 接受任意数量的关键字参数。
    python">def print_kwargs(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")
    

4. 控制流

  • 条件表达式:一行 if-else 逻辑。
    python">max_value = a if a > b else b
    
  • 异常处理:使用 try…except 语句处理错误。
    python">try:x = int(input("Please enter a number: "))
    except ValueError:print("That's not a valid number!")
    
  • 断言:调试目的的检查。
    python">assert x == y, "x does not equal y"
    

5. 上下文管理

  • with 语句:资源管理。
    python">with open('file.txt') as f:content = f.read()
    

6. 类和对象

  • 属性装饰器:创建管理对象属性的方法。
    python">class MyClass:@propertydef value(self):return self._value@value.setterdef value(self, new_value):self._value = new_value
    
  • 命名元组:创建带有命名字段的元组子类。
    python">from collections import namedtuple
    Point = namedtuple('Point', ['x', 'y'])
    

7. 模块和包

  • 相对与绝对导入:模块的相对或绝对导入。
    python">from . import my_module  # 相对导入
    from mypackage import my_module  # 绝对导入
    

8. 类型提示

  • 类型注解:指定变量的预期类型。
    python">def get_addition_result(a: int, b: int) -> int:return a + b
    

9. 异步编程

  • 异步函数:使用 asyncawait 编写异步代码。
python">import asyncio# 定义一个异步函数,模拟异步数据获取
async def fetch_data():# 模拟异步操作,例如网络请求await asyncio.sleep(1)return {"data": 1}# 定义主协程,调用异步函数并打印结果
async def main():data = await fetch_data()print(data)# 使用 asyncio.run() 运行主协程,适用于 Python 3.7 及以上版本
asyncio.run(main())

10. 其他

  • 表达式末尾的逗号:在表达式末尾使用逗号,方便添加或删除元素。
    python">my_list = [1, 2, 3, ]
    
  • 星号参数和双星号参数:在函数定义中收集任意数量的参数。
    python">def func(*args, **kwargs):print(args, kwargs)
    
  • 异常的 as 用法:捕获异常的实例。
    python">try:1 / 0
    except ZeroDivisionError as e:print(f"Caught an exception: {e}")
    
  • 海象运算符:在表达式中进行赋值(Python 3.8+)。
    python"># Python 3.8+
    (element) = [1, 2, 3]
    
  • 使用 __slots__:限制实例属性,优化内存使用。
    python">class MyClass:__slots__ = ('name', 'age')
    

11. 内建函数和操作

  • 内建函数:如 len(), range(), min(), max(), sum() 等。
    python">len([1, 2, 3])
    
  • 序列字面量:创建列表、元组、集合。
    python">[1, 2, 3], (1, 2, 3), {1, 2, 3}
    
  • 字典字面量:创建字典。
    python">{'key': 'value'}
    
  • 条件表达式:简化 if-else 语句。
    python">'active' if is_active else 'inactive'
    
  • 迭代器解包:在函数调用中解包迭代器。
    python">[a, b] = iter_range
    
  • 参数解包:在函数调用中解包序列或字典。
    python">def func(a, b, c): pass
    func(*args, **kwargs)
    
  • 链式比较:简化多重比较。
    python">a < b < c
    
  • 内建序列方法:如 .append(), .extend(), .insert(), .remove(), .pop() 等。
    python">my_list.append('new item')
    
  • 内建字典方法:如 .get(), .keys(), .values(), .items() 等。
    python">my_dict.get('key')
    
  • 内建集合操作:如 .union(), .difference(), .intersection(), .symmetric_difference() 等。
    python">set_a.union(set_b)
    
  • 内建迭代器:如 enumerate(), zip(), filter(), map() 等。
    python">enumerate(['a', 'b', 'c'])
    
  • 内建类型转换:如 int(), float(), str(), bytes() 等。
    python">int('123')
    
  • 内建逻辑操作:如 and, or, not
    python">x and y or z
    
  • 内建身份操作:如 is, is not
    python">x is not None
    
  • 内建比较:比较运算符 ==, !=, >, <, >=, <=
    python">x > y
    
  • 内建数学运算:如 +, -, *, /, //, **
    python">x + y
    

12. 特殊方法

  • 特殊方法:如 __init__(), __str__(), __repr__(), __len__() 等。
    python">class MyClass:def __init__(self, value):self.value = value
    

13. 元类和类创建

  • 使用 type 作为元类:创建类的类。
    python">class MyClass(type):pass
    

14. 模块属性和包

  • 模块属性:如 __all__ 定义可导入的模块成员。
    python">__all__ = ['func1', 'func2']
    
  • 命名空间包:使用 __path__ 属性。
    python">__import__('pkgutil').extend_path(__path__, __name__)
    

15. 协程与异步IO

  • 异步上下文管理器:使用 async with
    python">async def async_func():async with aiohttp.ClientSession() as session:pass
    

16. 格式化字符串字面量

  • f-strings:格式化字符串。
    python">name = 'Kimi'
    f"Hello, {name}!"
    

17. 文件操作

  • 文件上下文管理器:使用 with open() 管理文件。
    python">with open('file.txt', 'r') as f:content = f.read()
    

18. 警告与反射

  • 警告机制:使用 warnings 模块发出警告。
    python">import warnings
    warnings.warn("This is a warning message.")
    
  • 反射:使用 getattr(), setattr(), delattr() 动态操作对象属性。
    python">getattr(obj, 'attr')
    

19. 垃圾回收与循环引用

  • 垃圾回收机制:自动管理内存。
    python"># Python's garbage collector takes care of objects
    
  • 循环引用处理:自动解除循环引用的 WeakRef
    python">import weakref
    weakref.ref(obj)
    

20. 内建数据类型操作

  • 序列操作:如 +, *, in, not in
    python">[1, 2] + [3, 4]
    
  • 字典操作:如 dict.pop(), dict.setdefault()
    python">my_dict.pop('key', 'default')
    
  • 集合操作:如 set.add(), set.remove()
    python">my_set.add('new item')
    

21. 内建迭代与循环控制

  • 迭代器:使用 iter() 创建迭代器。
    python">iter([1, 2, 3])
    
  • 循环控制:使用 breakcontinue 控制循环流程。
    python">for element in iterable:if some_condition:break  # Exit the loopelse:continue  # Skip to the next iteration
    

22. 内建比较与逻辑运算

  • 比较运算符==, !=, >, <, >=, <=
    python">x == y
    
  • 逻辑运算符and, or, not
    python">x and y or z
    

23. 内建身份与成员运算

  • 身份运算符is, is not
    python">x is y
    
  • 成员运算符in, not in
    python">'a' in ['a', 'b', 'c']
    

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

相关文章

基于享元模式实现连接池

享元模式 结构 享元&#xff08;Flyweight &#xff09;模式中存在以下两种状态&#xff1a; 1. 内部状态&#xff0c;即不会随着环境的改变而改变的可共享部分。 2. 外部状态&#xff0c;指随环境改变而改变的不可以共享的部分。享元模式的实现要领就是区分应用中的这两 种…

C++静态变量

C语言中与“静态”相关的词包括&#xff0c;静态全局变量&#xff0c;静态局部变量和静态函数&#xff0c;关键词是static。C语言中的变量从作用域分&#xff0c;可以分为全局变量和局部变量&#xff1b;从存储方式分&#xff0c;可以分为静态存储方式和动态存储方式。 1. 静态…

HTML中的文档声明

前言 什么是<!DOCTYPE>&#xff1f;是否需要在 HTML5 中使用&#xff1f;什么是严格模式与混杂模式&#xff1f; 文档声明概念 HTML 文档通常以文档声明开始&#xff0c;该声明的作用是帮助浏览器确定其尝试解析和显示的 HTML 文档类型。 <!DOCTYPE html>文档声…

网站被SmartScreen标记为不安全怎么办?

在互联网时代&#xff0c;网站的安全性和可信度是用户选择是否继续访问的重要因素之一&#xff0c;然而&#xff0c;网站运营者偶尔会发现使用Edge浏览器访问网站时&#xff0c;会出现Microsoft Defender SmartScreen&#xff08;以下简称SmartScreen&#xff09;提示网站不安全…

【CVPR2023】Re:InterHand:一个用于3D交互手部姿态估计的重光照数据集

这篇论文的标题是《A Dataset of Relighted 3D Interacting Hands》&#xff0c;作者是Gyeongsik Moon, Shunsuke Saito, Weipeng Xu, Rohan Joshi, Julia Buffalini, Harley Bellan, Nicholas Rosen, Jesse Richardson, Mallorie Mize, Philippe de Bree, Tomas Simon, Bo Pen…

【Linux】学习记录_15_POSIX信号量

15 POSIX信号量 15.1 POSIX信号量基本概念 信号量&#xff08;Semaphore&#xff09;是一种实现进程/线程间通信的机制&#xff0c;可以实现进程/线程之间同步或临界资源的互斥访问&#xff0c; 常用于协助一组相互竞争的进程/线程来访问临界资源。在多进程/线程系统中&#…

feign整合sentinel做降级知识点

1&#xff0c;配置依赖 <!-- Feign远程调用依赖 --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency> <!--sentinel--><dependency>…

Okapi Framework

文章目录 关于 OkapiRainbowCheckMateRatelTikalFilters Plugin for OmegaTLonghorn 关于 Okapi 官网&#xff1a;http://okapiframework.org源码&#xff1a;https://bitbucket.org/okapiframework/okapi/src文档&#xff1a;http://okapiframework.org/wiki/index.php?titl…