python 66 个冷知识 0720

66个有趣的Python冷知识

  1. 一行反转列表

    • 使用切片一行反转列表:reversed_list = my_list[::-1]
  2. 统计文件单词数量

    • 使用 collections.Counter 统计文件中每个单词的数量:from collections import Counter; with open('file.txt') as f: word_count = Counter(f.read().split())
  3. 生成斐波那契数列

    • 一行生成斐波那契数列:fibonacci = lambda n: n if n <= 1 else fibonacci(n-1) + fibonacci(n-2)
  4. Python之禅

    • 在Python解释器中输入 import this 会显示Python之禅。
  5. 检查对象类型

    • 使用 isinstance() 检查对象类型:is_instance = isinstance(123, int)
  6. 命名元组字段

    • collections.namedtuple 创建的命名元组可以用点号访问字段:Point = namedtuple('Point', 'x y'); p = Point(1, 2); print(p.x, p.y)
  7. 字符串多行拼接

    • 使用括号自动拼接多行字符串:long_string = ("This is a very long string " "that spans multiple lines " "but is still considered one string.")
  8. 多次装饰器

    • 一个函数可以被多个装饰器装饰:@decorator1 @decorator2 def func(): pass
  9. 深拷贝

    • 使用 copy 模块进行深拷贝:import copy; deep_copied_list = copy.deepcopy(original_list)
  10. 反向字符串

    • 使用 ''.join(reversed(string)) 反转字符串:reversed_string = ''.join(reversed('hello'))
  11. 正则表达式搜索

    • 使用 re.search() 搜索正则表达式:import re; match = re.search(r'\d+', 'abc123')
  12. 自定义异常处理

    • 自定义异常处理可以提供更详细的信息:class CustomError(Exception): pass; raise CustomError("An error occurred")
  13. 捕获多种异常

    • 使用元组捕获多种异常:try: ... except (TypeError, ValueError) as e: ...
  14. 复数运算

    • Python内置支持复数运算:z = (1 + 2j) * (3 + 4j)
  15. 压缩和解压文件

    • 使用 shutil 模块压缩和解压文件:import shutil; shutil.make_archive('archive', 'zip', 'directory_path'); shutil.unpack_archive('archive.zip')
  16. 执行多行代码

    • 使用 exec() 执行多行代码:exec("a = 1\nb = 2\nprint(a + b)")
  17. 检查对象是否可调用

    • 使用 callable() 检查对象是否可调用:is_callable = callable(print)
  18. 字典推导式

    • 使用字典推导式创建字典:squared_dict = {x: x*x for x in range(10)}
  19. 列表嵌套解析

    • 列表嵌套解析生成平坦列表:flat_list = [item for sublist in nested_list for item in sublist]
  20. 元素频率计数

    • 使用 collections.Counter 统计元素频率:from collections import Counter; freq = Counter(my_list)
  21. 类型注解

    • 使用类型注解提高代码可读性:def greet(name: str) -> str: return 'Hello ' + name
  22. 枚举类型

    • 使用 Enum 创建枚举类型:from enum import Enum; class Color(Enum): RED = 1; GREEN = 2; BLUE = 3
  23. 上下文管理器

    • 自定义上下文管理器:class MyContext: def __enter__(self): ...; def __exit__(self, exc_type, exc_val, exc_tb): ...
  24. 性能计时器

    • 使用 timeit 模块测量代码性能:import timeit; exec_time = timeit.timeit('sum(range(1000))', number=1000)
  25. 多线程编程

    • 使用 threading 模块实现多线程:import threading; t = threading.Thread(target=func); t.start()
  26. 多进程编程

    • 使用 multiprocessing 模块实现多进程:import multiprocessing; p = multiprocessing.Process(target=func); p.start()
  27. 内置迭代器

    • 使用 iter()next() 创建自定义迭代器:iterator = iter([1, 2, 3]); next(iterator)
  28. 自定义装饰器

    • 使用 functools.wraps 保留原函数元数据:import functools; def decorator(func): @functools.wraps(func) def wrapper(*args, **kwargs): ...
  29. 检查对象大小

    • 使用 sys.getsizeof() 检查对象占用的内存大小:import sys; size = sys.getsizeof(my_object)
  30. 内存视图对象

    • 使用 memoryview 操作二进制数据:data = memoryview(b'abc')
  31. 命令行参数解析

    • 使用 argparse 模块解析命令行参数:import argparse; parser = argparse.ArgumentParser(); parser.add_argument('--arg'); args = parser.parse_args()
  32. 生成器表达式

    • 使用生成器表达式节省内存:gen = (x*x for x in range(10))
  33. 无序集合

    • 使用 frozenset 创建不可变集合:fs = frozenset([1, 2, 3])
  34. 字符串模板

    • 使用 string.Template 进行字符串模板替换:from string import Template; t = Template('$who likes $what'); s = t.substitute(who='tim', what='kung pao')
  35. 对象属性访问

    • 使用 getattr() 动态访问对象属性:value = getattr(obj, 'attribute')
  36. 动态设置属性

    • 使用 setattr() 动态设置对象属性:setattr(obj, 'attribute', value)
  37. 删除对象属性

    • 使用 delattr() 删除对象属性:delattr(obj, 'attribute')
  38. 路径是否绝对

    • 使用 os.path.isabs() 检查路径是否绝对路径:import os; is_abs = os.path.isabs('/path/to/file')
  39. 获取文件扩展名

    • 使用 os.path.splitext() 获取文件扩展名:import os; ext = os.path.splitext('file.txt')[1]
  40. 行迭代文件

    • 使用 fileinput 模块逐行迭代文件:import fileinput; for line in fileinput.input('file.txt'):
  41. 压缩数据

    • 使用 zlib 模块压缩数据:import zlib; compressed = zlib.compress(b'data')
  42. 解压数据

    • 使用 zlib 模块解压数据:import zlib; decompressed = zlib.decompress(compressed)
  43. 计算CRC32

    • 使用 zlib.crc32() 计算CRC32校验和:import zlib; crc = zlib.crc32(b'data')
  44. 哈希对象

    • 使用 hashlib 模块计算哈希值:import hashlib; hash_obj = hashlib.sha256(b'data'); hash_hex = hash_obj.hexdigest()
  45. 生成随机密码

    • 使用 secrets 模块生成安全随机密码:import secrets; password = secrets.token_urlsafe(16)
  46. 生成随机整数

    • 使用 secrets.randbelow() 生成安全随机整数:import secrets; number = secrets.randbelow(100)
  47. UUID生成

    • 使用 uuid 模块生成唯一标识符:import uuid; unique_id = uuid.uuid4()
  48. 双端队列

    • 使用 collections.deque 实现高效的双端队列操作:from collections import deque; d = deque([1, 2, 3]); d.appendleft(0); d.append(4)
  49. 序列化对象

    • 使用 pickle 模块序列化对象:import pickle; serialized = pickle.dumps(obj)
  50. 反序列化对象

    • 使用 pickle 模块反序列化对象:import pickle; obj = pickle.loads(serialized)
  51. 深拷贝对象

    • 使用 copy.deepcopy() 进行深拷贝:import copy; new_obj = copy.deepcopy(old_obj)
  52. 按位取反

    • 使用 ~ 运算符进行按位取反:inverted = ~value
  53. 按位与

    • 使用 & 运算符进行按位与:result = value1 & value2
  54. 按位或

    • 使用 | 运算符进行按位或:result = value1 | value2
  55. 按位异或

    • 使用 ^ 运算符进行按位异或:result = value1 ^ value2
  56. 位左移

    • 使用 << 运算符进行位左移:shifted = value << 2
  57. 位右移

    • 使用 >> 运算符进行位右移:shifted = value >> 2
  58. 高精度浮点数

    • 使用 decimal.Decimal 进行高精度浮点数运算:from decimal import Decimal; high_precision = Decimal('0.1') + Decimal('0.2')
  59. 操作日期

    • 使用 datetime.timedelta 操作日期:from datetime import datetime, timedelta; tomorrow = datetime.now() + timedelta(days=1)
  60. 获取日期差

    • 使用 datetime.date 获取日期差:from datetime import date; delta = date(2022, 1, 1) - date(2021, 1, 1)
  61. 生成随机日期

    • 使用 random.randint() 生成随机日期:import random; from datetime import datetime, timedelta; random_date = datetime.now() + timedelta(days=random.randint(0, 365))
  62. 同步队列

    • 使用 queue.Queue 实现线程安全的同步队列:import queue; q = queue.Queue(); q.put(item); item = q.get()
  63. 优先级队列

    • 使用 queue.PriorityQueue 实现优先级队列:import queue; pq = queue.PriorityQueue(); pq.put((priority, item)); item = pq.get()
  64. 定时器

    • 使用 threading.Timer 实现定时器:import threading; t = threading.Timer(5.0, func); t.start()
  65. 记录程序运行日志

    • 使用 logging 模块记录程序运行日志:import logging; logging.basicConfig(level=logging.INFO); logging.info('This is an info message')
  66. 模块缓存

    • Python会缓存导入的模块,可以通过 sys.modules 查看缓存的模块:import sys; cached_modules = sys.modules

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

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

相关文章

【数据结构初阶】复杂度

目录 一、时间复杂度 1、时间复杂度的概念 2、大O的渐进表示法 3、常见的时间复杂度计算举例 二、空间复杂度 1、空间复杂度的概念 2、常见的空间复杂度计算举例 三、常见复杂度对比 正文开始—— 前言 一个算法&#xff0c;并非越简洁越好&#xff0c;那该如何衡量一个算法…

FLINK-checkpoint失败原因及处理方式

在 Flink 或其他分布式数据处理系统中&#xff0c;Checkpoint 失败可能由多种原因引起。以下是一些常见的原因&#xff1a; 资源不足&#xff1a; 如果 TaskManager 的内存或磁盘空间不足&#xff0c;可能无法完成状态的快照&#xff0c;导致 Checkpoint 失败。 网络问题&am…

微信小程序开发入门指南

文章目录 一、微信小程序简介二、微信小程序开发准备三、微信小程序开发框架四、微信小程序开发实例六、微信小程序开发进阶6.1 组件化开发6.2 API调用6.3 云开发 七、微信小程序开发注意事项7.1 遵守规范7.2 注意性能7.3 保护用户隐私 八、总结 大家好&#xff0c;今天将为大家…

源码安装 AMD GPGPU 生态 ROCm 备忘

0, 前言 如果初步接触 AMD这套&#xff0c;可以先在ubuntu上使用apt工具安装&#xff0c;并针对特定感兴趣的模块从源码编译安装替换&#xff0c;并开展研究。对整体感兴趣时可以考虑从源码编译安装整个ROCm生态。 1, 预制二进制通过apt 安装 待补。。。 2, 从源码安装 sudo …

C:一些题目

1.分数求和 计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值 #include <stdio.h>int main(){double sum 0.0; // 使用 double 类型来存储结果&#xff0c;以处理可能的小数部分int sign 1; // 符号标志&#xff0c;初始为 1 表示正数for (int i 1; i < 100; i)…

Vue3 内置组件Teleport以及Susponse

1、Teleport 1.1 概念 将组件模版中的指定的dom挂载&#xff08;传送&#xff09;到指定的dom元素上&#xff0c;如挂载到body中&#xff0c;挂载到#app选择器上面。 1.2 应用场景 经典案例如&#xff1a;模态框。 <template><teleport to"body">&l…

处理AI模型中的“Type Mismatch”报错:数据类型转换技巧

处理AI模型中的“Type Mismatch”报错&#xff1a;数据类型转换技巧 &#x1f504; 处理AI模型中的“Type Mismatch”报错&#xff1a;数据类型转换技巧 &#x1f504;摘要引言正文内容1. 错误解析&#xff1a;什么是“Type Mismatch”&#xff1f;2. 数据类型转换技巧2.1 检查…

Redis之Zset

目录 一.介绍 二.命令 三.编码方式 四.应用场景 Redis的学习专栏&#xff1a;http://t.csdnimg.cn/a8cvV 一.介绍 ZSET&#xff08;有序集合&#xff09;是 Redis 提供的一种数据结构&#xff0c;它与普通集合&#xff08;SET&#xff09;类似&#xff0c;不同之处在于每个…

【带你了解软件系统架构的演变】

🌈个人主页: 程序员不想敲代码啊 🏆CSDN优质创作者,CSDN实力新星,CSDN博客专家 👍点赞⭐评论⭐收藏 🤝希望本文对您有所裨益,如有不足之处,欢迎在评论区提出指正,让我们共同学习、交流进步! 1. 介绍 🍋‍🟩软件系统架构的演变是一个响应技术变革、业务需求…

Tailwind CSS常见组合用法

1、一般布局组合 <main className"flex min-h-screen flex-col items-center justify-between p-24"></main>flex将元素的显示类型设置为 flexbox。这意味着子元素将以 flex 项的方式排列。min-h-screen将元素的最小高度设置为全屏高度&#xff08;视口高…

【Powershell】超越限制:获取Azure AD登录日志

你是否正在寻找一种方法来追踪 Azure Active Directory&#xff08;Azure AD&#xff09;中用户的登录活动&#xff1f; 如果是的话&#xff0c;查看Azure AD用户登录日志最简单的方法是使用Microsoft Entra管理中心。打开 https://entra.microsoft.com/&#xff0c;然后进入 监…

CentOS 7开启SSH连接

1. 安装openssh-server 1.1 检查是否安装openssh-server服务 yum list installed | grep openssh-server如果有显示内容&#xff0c;则已安装跳过安装步骤&#xff0c;否则进行第2步 1.2 安装openssh-server yum install openssh-server2. 开启SSH 22监听端口 2.1 打开ssh…

对零拷贝技术的思考过程

名词 CPU拷贝&#xff1a;将内核缓存区的数据拷贝到用户缓存区DMA拷贝&#xff1a;将外设上的数据拷贝到内核缓存区系统调用&#xff1a;应用程序调用操作系统的接口上下文切换&#xff1a;用户态和内核态&#xff0c;应用调用操作系统的接口&#xff0c;操作系统调用CPU内核工…

每天都在用的20个Python技巧,让你从此告别平庸!

今天我将向大家分享日常工作中常用的20个Python技巧&#xff0c;小巧而优雅&#xff0c;让你的代码更加 Pythonic&#x1f44d; 目录 Tip1&#xff1a;单行代码实现变量值交换 Tip2&#xff1a;序列反转很简单 Tip3&#xff1a;字符串乘法 Tip4&#xff1a;单行代码实现条…

RFID(NFC) CLRC663非接触读取芯片GD32/STM32 SPI读取

文章目录 基本介绍硬件配置连接硬件连接详解程序代码代码解释 基本介绍 CLRC663 是高度集成的收发器芯片&#xff0c;用于 13.56 兆赫兹的非接触式通讯。CLRC663 收发器芯片支 持下列操作模式 • 读写模式支持 ISO/IEC 14443A/MIFARE • 读写模式支持 SO/IEC 14443IB • JIS X…

打破误解:走近轻度自闭症患者的真实生活

在自闭症的广阔光谱中&#xff0c;轻度自闭症是一个相对温和但又不可忽视的存在。它像是一层薄薄的雾&#xff0c;轻轻笼罩在患者的世界里&#xff0c;既不影响他们基本的生存能力&#xff0c;又在一定程度上影响着他们的社交互动、情感表达及兴趣范围。 轻度自闭症患者往往能…

【Android】Android模拟器抓包配置

从Android7.0之后开始&#xff0c;用户自行安装的证书在用户目录下&#xff0c;无法进行证书信任&#xff0c;导致Charles无法进行https抓包 方案&#xff1a; 1. 获取手机root权限 有些模拟器可以直接开启root权限&#xff1b; 有些Android手机可以直接开启root权限。 2. …

特征融合篇 | YOLOv5/v7 更换上采样方式 | 最近邻 / 双线性 / 双立方 / 三线性 / 转置卷积

特征融合篇 | YOLOv5/v7 更换上采样方式 简介 在目标检测模型中&#xff0c;特征融合是至关重要的一步&#xff0c;它将来自不同尺度的特征进行融合&#xff0c;以获得更丰富的语义信息和更强的表达能力。传统的 YOLOv5 和 YOLOv7 模型使用最近邻插值作为上采样方式来进行特征…

【ai】学习笔记:电影推荐1:协同过滤 TF-DF 余弦相似性

2020年之前都是用协同过滤2020年以后用深度学习、人工智能视频收费的,不完整,里面是电影推荐 这里有个视频讲解2016年大神分析了电影推荐 :MovieRecommendation github地址 看起来是基于用户的相似性和物品的相似性,向用户推荐物品: 大神的介绍: 大神的介绍: 基于Pytho…

Python3 基础语法快速入门

目录&#xff1a; 一、概述二、运行1、终端启动 Python3 交互式解释器直接执行&#xff1a;2、.py 文件运行&#xff1a;3、可执行文件运行&#xff1a; 三、基础语法1、Python 中文编码&#xff1a;2、注释&#xff1a;3、print 输出&#xff1a;4、变量赋值&#xff1a;5、行…