当前位置: 首页 > news >正文

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

相关文章:

python 66 个冷知识 0720

66个有趣的Python冷知识 一行反转列表 使用切片一行反转列表&#xff1a;reversed_list my_list[::-1] 统计文件单词数量 使用 collections.Counter 统计文件中每个单词的数量&#xff1a;from collections import Counter; with open(file.txt) as f: word_count Counter(f…...

利用PyTorch进行模型量化

利用PyTorch进行模型量化 目录 利用PyTorch进行模型量化 一、模型量化概述 1.为什么需要模型量化&#xff1f; 2.模型量化的挑战 二、使用PyTorch进行模型量化 1.PyTorch的量化优势 2.准备工作 3.选择要量化的模型 4.量化前的准备工作 三、PyTorch的量化工具包 1.介…...

Android 小白菜鸟从入门到精通教程

前言 Android一词最早出现于法国作家利尔亚当&#xff08;Auguste Villiers de l’Isle-Adam&#xff09;在1886年发表的科幻小说《未来的夏娃》&#xff08;L’ve future&#xff09;中。他将外表像人的机器起名为Android。从初学者的角度出发&#xff0c;通过通俗易懂的语言…...

php相关

php相关 ​ 借鉴了小迪安全以及各位大佬的博客&#xff0c;如果一切顺利&#xff0c;会不定期更新。 如果感觉不妥&#xff0c;可以私信删除。 默认有php基础。 文章目录 php相关1. php 缺陷函数1. 与2. MD53. intval()4. preg_match() 2. php特性1. php字符串解析特性2. 杂…...

uniapp上传功能用uni-file-picker实现

文章目录 html代码功能实现css样式代码 html代码 <uni-file-pickerselect"onFileSelected"cancel"onFilePickerCancel"limit"1"class"weightPage-upload-but"file-mediatype"image"></uni-file-picker><imag…...

【PPT笔记】1-3节 | 默认设置/快捷键/合并形状

文章目录 说明笔记1 默认设置1.1 OFFICE版本选择1.1.1 Office某某数字专属系列1.1.2 Office3651.1.3 产品信息怎么看 1.2 默认设置1.2.1 暗夜模式1.2.2 无限撤回1.2.3 自动保存&#xff08;Office2013版本及以上&#xff09;1.2.4 图片压缩1.2.5 字体嵌入1.2.6 多格式导出1.2.7…...

Qt中的高分辨率及缩放处理

写在前面 使用Qt开发界面客户端&#xff0c;需要考虑不同分辨率及缩放对UI界面的影响&#xff0c;否则会影响整体的交互使用。 问题 高分辨率/缩放设备上图片/图标模糊 若不考虑高分辨及缩放处理&#xff0c;在高分辨率/缩放设备上&#xff0c;软件中的图片、图标可能会出现…...

电机泵盖机器人打磨去毛刺,选德国进口高精度主轴

机器人打磨去毛刺该如何选择主轴呢&#xff1f;首先我们需要考虑的是工件的材质&#xff0c;电机泵盖通常使用铸铁、不锈钢、合金钢等金属材质&#xff0c;因此这类保持的硬度较高&#xff0c;一般会选择功率、扭矩较大的德国进口高精度主轴Kasite 4060 ER-S。 Kasite 4060 ER-…...

Android init.rc各阶段的定义和功能

Android开机优化系列文档-CSDN博客 Android 14 开机时间优化措施汇总-CSDN博客Android 14 开机时间优化措施-CSDN博客根据systrace报告优化系统时需要关注的指标和优化策略-CSDN博客Android系统上常见的性能优化工具-CSDN博客Android上如何使用perfetto分析systrace-CSDN博客A…...

.net dataexcel 脚本公式 函数源码

示例如: ScriptExec(""sum(1, 2, 3, 4)"") 结果等于10 using Feng.Excel.Builder; using Feng.Excel.Collections; using Feng.Excel.Interfaces; using Feng.Script.CBEexpress; using Feng.Script.Method; using System; using System.Collections.Gen…...

HarmonyOS ArkUi @CustomDialog 和promptAction.openCustomDialog踩坑以及如何选择

CustomDialog 内使用Link&#xff0c;如何正常使用 错误使用方式&#xff1a; 定义一个函数&#xff0c;在函数内使用弹窗&#xff0c;如下面代码showDialog&#xff1a; 这种使用方式&#xff0c;无法在自定义的CustomDialog内使用 Link&#xff0c;进行父子双向绑定&#x…...

Python面试题:详细讲解Python的多线程与多进程编程问题

在 Python 中&#xff0c;多线程和多进程编程是并发编程的两种主要方式&#xff0c;用于提高程序的执行效率和响应性。虽然它们都可以实现并发执行&#xff0c;但它们的工作原理和适用场景有所不同。以下是对 Python 多线程和多进程编程的详细讲解&#xff0c;包括它们的工作原…...

前端Canvas入门——用canvas写五子棋?

前言 五子棋的实现其实不难&#xff0c;因为本身就是一个很小的游戏。 至于画线什么的&#xff0c;其实很简单&#xff0c;都是lineTo()&#xff0c;moveTo()就行了。 难的在于——怎么让棋子落入到指定的格子上&#xff0c;怎么判断连子胜利。 当然啦&#xff0c;这部分是…...

[PaddlePaddle飞桨] PaddleDetection-通用目标检测-小模型部署

PaddleDetection的GitHub项目地址 推荐环境&#xff1a; PaddlePaddle > 2.3.2 OS 64位操作系统 Python 3(3.5.1/3.6/3.7/3.8/3.9/3.10)&#xff0c;64位版本 pip/pip3(9.0.1)&#xff0c;64位版本 CUDA > 10.2 cuDNN > 7.6pip下载指令&#xff1a; python -m pip i…...

Golang | Leetcode Golang题解之第239题滑动窗口最大值

题目&#xff1a; 题解&#xff1a; func maxSlidingWindow(nums []int, k int) []int {n : len(nums)prefixMax : make([]int, n)suffixMax : make([]int, n)for i, v : range nums {if i%k 0 {prefixMax[i] v} else {prefixMax[i] max(prefixMax[i-1], v)}}for i : n - 1…...

深度解析:在 React 中实现类似 Vue 的 KeepAlive 组件

在前端开发中&#xff0c;Vue 的 keep-alive 组件是一个非常强大的工具&#xff0c;它可以在组件切换时缓存组件的状态&#xff0c;避免重新渲染&#xff0c;从而提升性能。那么&#xff0c;如何在 React 中实现类似的功能呢&#xff1f;本文将带你深入探讨&#xff0c;并通过代…...

2024-7-20 IT新闻

目录 微软全球IT系统故障 中国量子计算产业峰会召开 其他IT相关动态 微软全球IT系统故障 后续处理&#xff1a; 微软和CrowdStrike均迅速响应&#xff0c;发布了相关声明并部署了修复程序。CrowdStrike撤销了有问题的软件更新&#xff0c;以帮助用户恢复系统正常运作。微软也…...

前端组件化开发:以Vue自定义底部操作栏组件为例

摘要 随着前端技术的不断演进&#xff0c;组件化开发逐渐成为提升前端开发效率和代码可维护性的关键手段。本文将通过介绍一款Vue自定义的底部操作栏组件&#xff0c;探讨前端组件化开发的重要性、实践过程及其带来的优势。 一、引言 随着Web应用的日益复杂&#xff0c;传统的…...

11.斑马纹列表 为没有文本的链接设置样式

斑马纹列表 创建一个背景色交替的条纹列表。 使用 :nth-child(odd) 或 :nth-child(even) 伪类选择器,根据元素在一组兄弟元素中的位置,对匹配的元素应用不同的 background-color。 💡 提示:你可以用它对其他 HTML 元素应用不同的样式,如 <div>、<tr>、<p&g…...

【算法】跳跃游戏II

难度&#xff1a;中等 题目&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 0 < j < nums[…...

学习大数据DAY20 Linux环境配置与Linux基本指令

目录 Linux 介绍 Linux 发行版 Linux 和 Windows 比较 Linux 就业方向&#xff1a; 下载 CentOS Linux 目录树 Linux 目录结构 作业 1 常用命令分类 文件目录类 作业 2 vim 编辑文件 作业 3 你问我第 19 天去哪了&#xff1f;第 19 天在汇报第一阶段的知识总结&#xff0c;没什…...

达梦+flowable改造

原项目springbootflowablemysql模式现需改造springbootflowable达梦&#xff0c; 1.在项目中引入达梦jpa包 引入高版本包已兼容flowable&#xff08;6.4.2&#xff09;liquibase&#xff08;3.6.2&#xff09; 我没有像网上做覆盖及达梦配置 <dependency> …...

【乐吾乐2D可视化组态编辑器】消息

消息 乐吾乐2D可视化组态编辑器demo&#xff1a;https://2d.le5le.com/ 监听消息 const fn (event, data) > {}; meta2d.on(event, fn);// 监听全部消息 meta2d.on(*, fn);// 取消监听 meta2d.off(event, fn); meta2d.off(*, fn); Copy 系统消息 event&#xff08;…...

Qt创建列表,通过外部按钮控制列表的选中下移、上移以及左侧图标的显现

引言 项目中需要使用列表QListWidget,但是不能直接拿来使用。需要创建一个列表,通过向上和向下的按钮来向上或者向下移动选中列表项,当当前项背选中再去点击确认按钮,会在列表项的前面出现一个图标。 实现效果 本实例实现的效果如下: 实现思路 思路一 直接采用QLis…...

svn不能记住密码,反复弹出GNOME,自动重置svn.simple文件

1. 修改文件 打开 ~/.subversion/auth/svn.simple/xxx 更新前 K 15 svn:realmstring V 32 xxxxx //svn 地址&#xff0c;库的地址 K 8 username V 4 xxx //用户名 END在顶部插入下面内容&#xff0c; 注意&#xff0c;如果密码不对&#xff0c;则文件文法正常生效 更新后…...

对称加密与非对称加密

对称加密 对称加密指的是加密和解密使用同一个秘钥,所以叫对称加密。对称加密只有一个秘钥,称为私钥。 优点:算法公开、计算量小、加密速度快、效率高 缺点:数据传输前,发送方和接收方必须确定好秘钥,双方也必须要保存好秘钥。 常见对称加密算法: DES、3DES、AES、3…...

03 Git的基本使用

第3章&#xff1a;Git的基本使用 一、创建版本仓库 一&#xff09;TortoiseGit ​ 选择项目地址&#xff0c;右键&#xff0c;创建版本库 ​ 初始化git init版本库 ​ 查看是否生成.git文件&#xff08;隐藏文件&#xff09; 二&#xff09;Git ​ 选择项目地址&#xff0c…...

【Linux】将IDEA项目部署到云服务器上,让其成为后台进程(保姆级教学,满满的干货~~)

目录 部署项目到云服务器什么是部署一、 创建MySQL数据库二、 修改idea配置项三、 数据打包四、 部署云服务器五、开放端口号六 、 验证程序 部署项目到云服务器 什么是部署 ⼯作中涉及到的"环境" 开发环境:开发⼈员写代码⽤的机器.测试环境:测试⼈员测试程序使⽤…...

IDEA的断点调试(Debug)

《IDEA破解、配置、使用技巧与实战教程》系列文章目录 第一章 IDEA破解与HelloWorld的实战编写 第二章 IDEA的详细设置 第三章 IDEA的工程与模块管理 第四章 IDEA的常见代码模板的使用 第五章 IDEA中常用的快捷键 第六章 IDEA的断点调试&#xff08;Debug&#xff09; 第七章 …...

部署django

部署Django项目到Apache HTTP服务器上,通常会使用mod_wsgi模块,这是Apache的一个扩展,专为Python web应用设计,可以很好地与Django集成。以下是部署Django项目的简要步骤: 准备工作 确保环境准备就绪: 确保你的系统中已安装了Python、Django以及Apache HTTP Server。安装…...

做资源下载网站用什么工具/做运营需要具备什么能力

可以通过使用 CCMSetup.exe 和 /Uninstall 开关从计算机卸载 Configuration Manager 2007 客户端软件。在单台计算机上从命令提示符运行 CCMSetup.exe 或使用 Configuration Manager 2007 软件分发以通过使用脚本在计算机集合上卸载客户端。 方法如下&#xff1a; 1、以管理员身…...

网站app简单做/任何小说都能搜到的软件

连接格点 题目 思路&#xff1a;把二维坐标映射到一维的点上&#xff0c;就是一个最小生成树问题&#xff0c;再把点连线&#xff0c;先连上下再连左右可以省去排序过程 具体代码如下 #include<iostream> #include<algorithm>using namespace std;const int N …...

青海做网站哪家好/百度网站客服电话

导出整个数据库到SQL mysqldump -h localhost -u user-p dbname> /home/bao/test.sql 然后输入密码&#xff0c;确认 导出数据库的某张表到 sql mysqldump -h localhost -u user -p dbname some_table_name> /home/bao/test.sql 导出数据库所有表结构 mysqldump -…...

论述市场营销对网站设计的影响/营销网站建设多少钱

自己做的基于PyQt5效率工具有一个优化需求&#xff1a;当窗口不在前台激活的情况下&#xff0c;不做后台任务&#xff0c;因此需要检查窗口是否在前台 PyQt的接口文档定义啥的找起来比较复杂&#xff0c;坑也比较多&#xff0c;stackoverflow上边也没有什么很完美的答案 经过…...

网站推广的方式包括/最近韩国电影片

环境&#xff1a;STM32CubeMxClionMatlabPCAN利用STM32CubeMx配置STM32的CAN通信&#xff1a;默认这两项终端是Enabled的&#xff0c;这里去掉&#xff0c;否则CAN无法同时收发&#xff0c;会卡在接收中断服务里&#xff1a;通过STM32CubeMx配置的CAN后&#xff0c;还需要在生成…...

修改wordpress后台文字/泰州seo网络公司

urllib 模块提供的 urlretrieve() 函数。urlretrieve() 方法直接将远程数据下载到本地。 >>> help(urllib.urlretrieve) Help on function urlretrieve in module urllib: urlretrieve(url, filenameNone, reporthookNone, dataNone) 参数 finename 指定了保存本地路径…...