关于Python的20个奇技淫巧

news2025/1/12 12:08:44

Python有非常多有趣使用的技巧,下面列举20个短小精炼的用法,其中既包含常规语法,又有第三方库的妙用,体现了python简单即美的编程哲学。

  1. 快速实现字频统计
from collections import Counter

words = '''我明白你的意思,你的意思就是想意思意思,但是你不明白我的意思,我的意思是你不用意思意思。'''
word_counts = Counter(words) 
top_three = word_counts.most_common(3) 
print(top_three) 

# 输出:[('意', 8), ('思', 8), ('你', 4)]
  1. 汉字转拼音
import pypinyin
words = "床前明月光"
pypinyin.pinyin(words)

# 输出:[['chuáng'], ['qián'], ['míng'], ['yuè'], ['guāng']]
  1. 查看某个文件夹里是否有python文件(或其他格式文件)
import os 
files = os.listdir("E:\\testfile\\") 
if any(name.endswith('.py') for name in files):
    print(1)
  1. 快速打印字符串
row = ["我", "爱", "python"] 
print(*row,sep="")

# 输出:我爱python
  1. 计算两个日期间隔天数
from datetime import date
d1 = date(2020,1,1) 
d2 = date(2020,9,13) 
print(abs(d2-d1).days)

# 输出:256
  1. 字符串拆解为键值对
    比如’x=11,y=20’拆解成{‘x’: 42.0, ‘y’: 1.0}
kvp = lambda elem,t,i: t(elem.split('=')[i]) 
parse_kvp_str = lambda args : dict([(kvp(elem,str,0), kvp(elem,float,1)) for elem in args.split(',')]) 
parse_kvp_str('x=11,y=20') 

# 输出:{'x': 42.0, 'y': 1.0}
  1. 变量值交换
a = 1
b = 2
a, b = b, a
  1. 将值追加到字典某个键下的列表中
d = {} 
d.setdefault(2, []).append(23) 
d.setdefault(2, []).append(11) 
d[2] 

# 输出:[23, 11]
  1. 返回列表中出现次数最多的元素
test = [1, 2, 3, 5, 2, 2, 3, 1, 2, 6, 2] 
print(max(set(test), key = test.count)) 

# 输出:2
  1. 查看某个变量占用内存大小
import sys 
x = 1
print(sys.getsizeof(x)) 

# 输出:28
  1. 随机返回几个字母组成的单词
import string, random 
randword = lambda n: "".join([random.choice(string.ascii_letters) for i in range(n)])

# 输出:'qsNWZF'
  1. 从混乱的字符串中分解出单词
words = lambda text: ''.join(c if c.isalnum() else ' ' for c in text).split() 
words('Johnny.Appleseed!is:a*good&farmer') 

# 输出:['Johnny', 'Appleseed', 'is', 'a', 'good', 'farmer']
  1. 打印进度条
import time 
import sys 
for progress in range(100): 
  time.sleep(0.1) 
  sys.stdout.write("Download progress: %d%%   \r" % (progress) )  
  sys.stdout.flush() 

  1. 快速反转字符串
a = 'Python is a powerful languange.'
print(a[::-1])

# 输出:.egnaugnal lufrewop a si nohtyP
  1. 找出两个列表中不一样的元素
list1 = ['Scott', 'Eric', 'Kelly', 'Emma', 'Smith']
list2 = ['Scott', 'Eric', 'Kelly']

set1 = set(list1)
set2 = set(list2)

list3 = list(set1.symmetric_difference(set2))
print(list3)

# 输出:['Emma', 'Smith']
  1. 删除列表中的重复项
listNumbers = [20, 22, 24, 26, 28, 28, 20, 30, 24]
list(set(listNumbers))

# 输出:[20, 22, 24, 26, 28, 30]
  1. 将两个列表变为字典
ItemId = [54, 65, 76]
names = ["Hard Disk", "Laptop", "RAM"]
itemDictionary = dict(zip(ItemId, names))
print(itemDictionary)

# 输出:{54: 'Hard Disk', 65: 'Laptop', 76: 'RAM'}
  1. 移除字符串中的标点
punctuations = '''!()-[]{};:'"\,<>./?@#$%^&*_~,。!?'''
my_str = "你好,!!我的网名叫作:隔-壁-老-王。"

# 移除标点
no_punct = ""
for char in my_str:
   if char not in punctuations:
       no_punct = no_punct + char

print(no_punct)

# 输出:你好我的名字叫作:隔壁老王
  1. 创建一个文件(如果该文件不存在)
import os  

MESSAGE = '该文件已经存在.'
TESTDIR = 'testdir'
try:
    home = os.path.expanduser("~")  
    print(home)  

    if not os.path.exists(os.path.join(home, TESTDIR)):  
        os.makedirs(os.path.join(home, TESTDIR))  
    else:
        print(MESSAGE)
except Exception as e:
    print(e)
  1. 从函数中返回多个值
def f():
    return 1,2,3,4 

a,b,c,d = f()
print(a,b,c,d) 

# 输出:1,2,3,4

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

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

相关文章

python将字典数据保存为json文件

目录 一、json库介绍 二、字典生成json文件 1、导入 json 模块 2、将字典数据保存为 json 文件 (1) 创建一个python字典 (2) 指定要保存的 json 文件路径 (3) 将字典数据存为 json 文件 3、读取 json文件&#xff0c;并打印 一、json库介绍 方法作用json.dumps()将py…

[java][mybatis]generatorConfig.xml配置信息详细

generatorConfig.xml配置信息详细 mybatis-generator有三种用法&#xff1a;命令行、eclipse插件、maven插件。个人觉得maven插件最方便&#xff0c;可以在eclipse/intellij idea等ide上可以通用。 下面是从官网上的截图&#xff1a; 在MBG中&#xff0c;最主要也最重要的就是…

拒绝拖延!Kimi助你一天内速成论文初稿!

撰写学术论文是一项需要周密计划和精确执行的任务。它要求作者对文章的每个部分进行深入思考&#xff0c;以确保论文结构的合理性和论述的清晰度。利用Kimi的功能&#xff0c;我们可以更系统地进行写作&#xff0c;从构思到最终成稿&#xff0c;逐步构建出一篇高质量的学术论文…

短视频SDK解决方案,高效集成,助力商业变现

美摄科技&#xff0c;作为业界领先的多媒体技术服务商&#xff0c;其全面升级的短视频SDK解决方案&#xff0c;旨在为开发者与内容创作者提供一站式、高效能的创作工具&#xff0c;让每一个灵感都能瞬间转化为触动人心的视频作品。 【一站式解决方案&#xff0c;重塑短视频创作…

外包出来,面试5次全挂,心态蹦了......

大概介绍一下个人情况&#xff0c;男&#xff0c;毕业于普通二本院校非计算机专业&#xff0c;18年跨专业入行测试&#xff0c;第一份工作在湖南某软件公司&#xff0c;做了接近4年的外包测试工程师&#xff0c;今年年初&#xff0c;感觉自己不能够再这样下去了&#xff0c;长时…

Web漏洞介绍和Sql注入漏洞

常规渗透测试流程 漏洞探测包括&#xff1a;web漏洞测试&#xff0c;系统漏洞测试 工具探测、手工验证 优先找的漏洞&#xff1a;中间&#xff08;件&#xff09;漏洞、框架漏洞...webserver 知道创宇 Seebug 漏洞平台 - 洞悉漏洞&#xff0c;让你掌握前沿漏洞情报&#xff…

API容易被攻击,如何做好API安全

随着互联网技术的飞速发展和普及&#xff0c;网络安全问题日益严峻&#xff0c;API&#xff08;应用程序接口&#xff09;已成为网络攻击的常见载体之一。API作为不同系统之间数据传输的桥梁&#xff0c;其安全性直接影响到整个系统的稳定性和数据的安全性。 根据Imperva发布的…

docker-harbor私有仓库部署和管理

harbor&#xff1a;开源的企业级的docker仓库软件 仓库&#xff1a;私有仓库 公有仓库 &#xff08;公司内部一般都是私有仓库&#xff09; habor 是有图形化的&#xff0c;页面UI展示的一个工具&#xff0c;操作起来很直观。 harbor每个组件都是由容器构建的&#xff0c;所…

CocosCreator3.8 IOS 构建插屏无法去除的解决方案

CocosCreator3.8 IOS 构建插屏无法去除的解决方案 在实际项目开发过程中&#xff0c;我们通常无需CocosCreator 自带的插屏&#xff0c;一般采用自定义加载页面。 然后在构建IOS 项目时&#xff0c;启用&#xff08;禁用&#xff09;插屏无法操作&#xff0c;如下图所示&#…

PDF转图片神器!一键转换,告别繁琐操作

自从出了社会以来&#xff0c;不论是在职场应对工作还是日常的信息传输等等场景都是经常需要用到各类格式之间转换的情况&#xff0c;其中尤其是pdf和图片这类编辑条件要求偏高的工具对信息的保密程度更高&#xff0c;所以往往也是出现频率比较高的格式&#xff0c;今天针对pdf…

heic图片转换成jpg怎么快速转换?5个软件手把手教你转换图片片格式

heic图片转换成jpg怎么快速转换&#xff1f;5个软件教你轻松转换图片格式 将HEIC格式的图片转换为更常见的JPG格式可能是许多人在使用苹果设备后常遇到的需求。以下是五款能够帮助你快速完成HEIC转JPG的实用软件&#xff0c;无论是在线工具还是桌面应用&#xff0c;都可以让你…

普元EOS-服务端获取当前登录用户信息

1 前言 EOS服务端需要获取当前登录人员的信息&#xff0c;获取方法如下&#xff1a; import com.eos.data.datacontext.DataContextManager; import com.eos.data.datacontext.IUserObject; import com.eos.data.datacontext.UserObject;UserObject userObj (UserObject) Da…

redis实战——go-redis的使用与redis基础数据类型的使用场景(一)

一.go-redis的安装与快速开始 这里操作redis数据库&#xff0c;我们选用go-redis这一第三方库来操作&#xff0c;首先是三方库的下载&#xff0c;我们可以执行下面这个命令&#xff1a; go get github.com/redis/go-redis/v9最后我们尝试一下连接本机的redis数据库&#xff0…

扫码点餐系统小程序功能分析

扫码点餐系统小程序通常具备以下核心功能&#xff1a; 用户界面&#xff1a;提供直观易用的界面&#xff0c;方便用户浏览菜单、选择菜品、查看订单状态等 。菜单展示&#xff1a;展示餐厅的菜单&#xff0c;包括菜品图片、价格、描述等信息 。扫码点餐&#xff1a;用户通过…

warning: implicit declaration of function ‘m‘ is invalid in C99

编译报错: implicit declaration of function ‘m’ is invalid in C99 即 函数 “m” 的隐式声明在C99中无效 原因&#xff1a; C语言是过程化的编程语言&#xff0c;程序执行顺序是从上到下。函数调用需要先声明后调用。 C99 默认不允许隐式声明(1999年推出的c语言标准)。 …

悟空,中国神话再一次惊艳世界

大家好&#xff0c;我是小悟 这两天《黑神话&#xff1a;悟空》刚上线&#xff0c;是非常的火。刚进入游戏&#xff0c;犹如揭开一幅绚丽多彩的画卷&#xff0c;展现了国产游戏在技术创新与艺术追求上的新高度。这款游戏不仅仅是一款动作角色扮演游戏&#xff0c;更是技术与艺术…

zoom 会议机器人web例子

一、需要创建zoom app&#xff0c;创建及配置参考&#xff1a;Zoom会议机器人转写例子-CSDN博客 这里直接使用zoom-recall的配置。 二、需要生成签名&#xff0c;参数为&#xff1a;zoom-recall中的Client ID和Client Secret 1、git clone https://github.com/zoom/meetings…

大模型学习笔记 - LLM 之 attention 优化

LLM 注意力机制 LLM 注意力机制 1. 注意力机制类型概述2.Group Query Attention3.FlashAttention4. PageAttention 1. 注意力机制类型概述 注意力机制最早来源于Transformer&#xff0c;Transformer中的注意力机制分为2种 Encoder中的 全量注意力机制和 Decoder中的带mask的…

磁编码器原理与方案

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 前言一、磁编码器二、多极磁编三、绝对值磁编四、单极对磁编五、磁游标编码器六、磁刻线编码器七、磁编码器优点八、磁…

46.x86游戏实战-DXX封包实现进入地图房间

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…