Python 小技巧

Python之路V2.0.pdf 告别枯燥,60秒学会⼀个⼩例⼦,系统学习Python,从⼊门到⼤师。Python之路已有 247 个例⼦: 感受Python之美 | ⼀、Python基础 |⼆、Python字符串和正则|三、Python⽂件和⽇期|四、Python 三⼤利器|五、Python绘图|六、Python之坑|七、Python第三⽅包|⼋、机器学习和深度学必知算法| 九、Python实战|⼗、Pandas数据分析案例实战 立即下载

英文原文:Max Burstein,编译:伯乐在线 –刘志军

以下是我近些年收集的一些Python实用技巧和工具,希望能对你有所帮助。

交换变量

1
2
3
4
5
6
7
8
9
x = 6
y = 5
 
x, y = y, x
 
print x
>>> 5
print y
>>> 6

if 语句在行内

1
2
print "Hello" if True else "World"
>>> Hello

连接

下面的最后一种方式在绑定两个不同类型的对象时显得很cool。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nfc = [ "Packers" , "49ers" ]
afc = [ "Ravens" , "Patriots" ]
print nfc + afc
>>> [ 'Packers' , '49ers' , 'Ravens' , 'Patriots' ]
 
print str ( 1 ) + " world"
>>> 1 world
 
print ` 1 ` + " world"
>>> 1 world
 
print 1 , "world"
>>> 1 world
print nfc, 1
>>> [ 'Packers' , '49ers' ] 1

数字技巧

1
2
3
4
5
6
#除后向下取整
print 5.0 / / 2
>>> 2
# 2的5次方
print 2 * * 5
>> 32

注意浮点数的除法

1
2
3
4
print . 3 / . 1
>>> 2.9999999999999996
print . 3 / / . 1
>>> 2.0

数值比较

这是我见过诸多语言中很少有的如此棒的简便法

1
2
3
4
5
6
7
x = 2
if 3 > x > 1 :
    print x
>>> 2
if 1 < x > 0 :
    print x
>>> 2

同时迭代两个列表

1
2
3
4
5
6
nfc = [ "Packers" , "49ers" ]
afc = [ "Ravens" , "Patriots" ]
for teama, teamb in zip (nfc, afc):
      print teama + " vs. " + teamb
>>> Packers vs. Ravens
>>> 49ers vs. Patriots

带索引的列表迭代

1
2
3
4
5
6
7
teams = [ "Packers" , "49ers" , "Ravens" , "Patriots" ]
for index, team in enumerate (teams):
     print index, team
>>> 0 Packers
>>> 1 49ers
>>> 2 Ravens
>>> 3 Patriots

列表推导式

已知一个列表,我们可以刷选出偶数列表方法:

1
2
3
4
5
numbers = [ 1 , 2 , 3 , 4 , 5 , 6 ]
even = []
for number in numbers:
     if number % 2 = = 0 :
         even.append(number)

转变成如下:

1
2
numbers = [ 1 , 2 , 3 , 4 , 5 , 6 ]
even = [number for number in numbers if number % 2 = = 0 ]

是不是很牛呢,哈哈。

字典推导

和列表推导类似,字典可以做同样的工作:

1
2
3
teams = [ "Packers" , "49ers" , "Ravens" , "Patriots" ]
print {key: value for value, key in enumerate (teams)}
>>> { '49ers' : 1 , 'Ravens' : 2 , 'Patriots' : 3 , 'Packers' : 0 }

初始化列表的值

1
2
3
items = [ 0 ] * 3
print items
>>> [ 0 , 0 , 0 ]

列表转换为字符串

1
2
3
teams = [ "Packers" , "49ers" , "Ravens" , "Patriots" ]
print ", " .join(teams)
>>> 'Packers, 49ers, Ravens, Patriots'

从字典中获取元素

我承认try/except代码并不雅致,不过这里有一种简单方法,尝试在字典中查找key,如果没有找到对应的alue将用第二个参数设为其变量值。

1
2
3
4
5
data = { 'user' : 1 , 'name' : 'Max' , 'three' : 4 }
try :
    is_admin = data[ 'admin' ]
except KeyError:
    is_admin = False
1
替换诚这样:
1
2
data = { 'user' : 1 , 'name' : 'Max' , 'three' : 4 }
is_admin = data.get( 'admin' , False )

获取列表的子集

有时,你只需要列表中的部分元素,这里是一些获取列表子集的方法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
x = [ 1 , 2 , 3 , 4 , 5 , 6 ]
#前3个
print x[: 3 ]
>>> [ 1 , 2 , 3 ]
#中间4个
print x[ 1 : 5 ]
>>> [ 2 , 3 , 4 , 5 ]
#最后3个
print x[ - 3 :]
>>> [ 4 , 5 , 6 ]
#奇数项
print x[:: 2 ]
>>> [ 1 , 3 , 5 ]
#偶数项
print x[ 1 :: 2 ]
>>> [ 2 , 4 , 6 ]

60个字符解决FizzBuzz

前段时间Jeff Atwood 推广了一个简单的编程练习叫FizzBuzz,问题引用如下:

写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”。

这里就是一个简短的,有意思的方法解决这个问题:

1
for x in range ( 101 ): print "fizz" [x % 3 * 4 ::] + "buzz" [x % 5 * 4 ::] or x

集合

除了python内置的数据类型外,在collection模块同样还包括一些特别的用例,在有些场合Counter非常实用。如果你参加过在这一年的Facebook HackerCup,你甚至也能找到他的实用之处。

1
2
3
from collections import Counter
print Counter( "hello" )
>>> Counter({ 'l' : 2 , 'h' : 1 , 'e' : 1 , 'o' : 1 })

 迭代工具

和collections库一样,还有一个库叫itertools,对某些问题真能高效地解决。其中一个用例是查找所有组合,他能告诉你在一个组中元素的所有不能的组合方式

1
2
3
4
5
6
7
8
9
10
from itertools import combinations
teams = [ "Packers" , "49ers" , "Ravens" , "Patriots" ]
for game in combinations(teams, 2 ):
     print game
>>> ( 'Packers' , '49ers' )
>>> ( 'Packers' , 'Ravens' )
>>> ( 'Packers' , 'Patriots' )
>>> ( '49ers' , 'Ravens' )
>>> ( '49ers' , 'Patriots' )
>>> ( 'Ravens' , 'Patriots' )

False == True

比起实用技术来说这是一个很有趣的事,在python中,True和False是全局变量,因此:

1
2
3
4
5
6
False = True
if False :
    print "Hello"
else :
    print "World"
>>> Hello

如果你还有任何很酷的奇技淫巧,可以在下面留言,感谢阅读。

 

英文原文:Max Burstein,编译:伯乐在线 –刘志军

译文链接:http://blog.jobbole.com/32748/

Python中字符串的常见操作技巧总结 主要介绍了Python中字符串的常见操作技巧,结合实例形式总结分析了Python针对字符串的反转、编码转换、进制转换及运算等常用技巧,需要的朋友可以参考下 立即下载

相关推荐

PX4|Gazebo模型加载失败排查指南:从环境变量到资源路径的全面解析

本文针对PX4与Gazebo联合仿真中常见的'Unable to get model name'错误,提供了从环境变量配置、资源路径排查到网络访问问题的全面解决方案。详细解析了GZ_SIM_RESOURCE_PATH等关键变量的作用与设置方法,并给出了离线模型库部署等一劳永逸的修复指南,帮助开发者彻底解决无人机模型加载失败问题。

weixin_29243063的博客 1228

快收藏!!整理了100个Python小技巧!!

大家好,我是小F~目前Python可以说是非常流行,在目前的编程语言中,Python的抽象程度是最高的,是最接近自然语言的,很容易上手。你可以用它来完成很多任务,比如数据科学、机器学习、W...

法纳斯特 2359

从零完成 STM32 + ESP-01S + 云服务器 TCP 通信测试

STM32 通过 USART3 控制 ESP-01S 接入手机 2.4 GHz 热点,随后连接公网云服务器 8.152.204.86:9002。云端在同一 TCP 连接中连续收到 seq=1~6 的测试报文,5 个发送间隔平均约 5.4 秒,说明本次 TCP 上行链路已经打通。

weixin_51387720的博客 311

Python 初学者的一个帖子,Mark

原文地址  http://blog.jobbole.com/32748/ 以下是我近些年收集的一些Python实用技巧和工具,希望能对你有所帮助。 交换变量 1 2 3 4 5 6 7 8 9 x = 6 y = 5   x, y =

lbd2008的专栏 1941

matlab tolx,Nelder-Mead算法matlab

Nelder-Mead算法适合变量数不是很多的方程求极值.原理:Nelder-Mead法是利用多面体来逐步逼近最佳点x*.设函数变量为n维,则在n维空间里多面体有(n+1)个顶点.设x1,x2,...,xn+1为多面体的顶点,且满足:f(x1)<=f(x2)<=...<=f(xn+1)Nelder-Mead法试着将多面体中最差的顶点xn+1(也就是函数的最大点)以新的最佳点替代,...

weixin_36485298的博客 1480

【文本分析学习】Anaconda+pytorch虚拟环境下的pycharm文本分析(含分词、词性标注、词形归一化、停用词、文本情感分析、词频、文本相似度,附数据代码) NLTK

文本分析学习之 Anadconda+pytorch虚拟环境下的pycharm文本分析(含分词、词性标注、词形归一化、停用词、文本情感分析、词频、文本相似度,附数据代码)

littlexmj的博客 2332

Python 的一些日常高频写法总结,建议收藏!

来 源:数据STUDIO今天给大家准备了60个python日常高频写法,如果觉得有用,那就点赞收藏起来吧~数字1、求绝对值绝对值或复数的模In [1]: abs(-6) Out[1]: 62、进制转化十进制转换为二进制:In [2]: bin(10) Out[2]: '0b1010'十进制转换为八进制:In [3]: oct(9) Out[3]: '0o11'十进制转换为十六进制:In [4]:...

lsxxx2011的专栏 288

BSW:MemMap模块配置及使用

(内存映射(MemMap)模块用于通过内存映射文件将代码和数据映射到特定的内存部分。MemMap生成特定的头文件,其中包含为MemorySection元素和编译器特定指令定义的内存映射预处理器。上面是比较官方的回答,说人话就是把数据和代码放在ECU内指定的地址。初级应用:软件中的bss,data,rodata,code,text,段需要在memory layout中划分具体的物理地址,对于多核系统,要将执行的数据和代码放在目标核的RAM和ROM。

Forever_Oct的博客 3675

新手学习Python需要知道的100个小技巧,加班一晚上终于整理出来了!

新手学习Python需要知道的100个小技巧,加班一晚上终于整理出来了!

分享Python知识 664

Spring AI实现RAG(检索增强生成)详解与实践

支持多种文件格式的文档加载实现高效的向量存储和检索构建智能的问答系统提供可追溯的知识服务RAG技术为AI应用提供了强大的知识增强能力,使得模型能够基于实际文档生成准确、可靠的回答。

beiduofen2011的专栏 1238

如何解除Uniaccess管控??

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2383

总结 90 条写 Python 程序的建议!

作者丨笑虎 来源丨http://zhuanlan.zhihu.com/p/32817459 自己写 Python 也有四五年了,一直是用自己的“强迫症”在维持自己代码的质量。都有去...

lsxxx2011的专栏 184

自然语言处理之话题建模:BERTopic模型详解

BERTopic是一种基于BERT的先进话题建模技术,它结合了BERT的语义理解能力和非参数聚类算法HDBSCAN的灵活性,能够生成高质量、语义丰富的话题。与传统的LDA(Latent Dirichlet Allocation)话题模型相比,BERTopic能够更好地捕捉文本的复杂语义结构,因为它利用了预训练的BERT模型来嵌入文本,从而在话题建模中引入了深度学习的力量。聚类是无监督学习的一种,其目标是将数据集中的样本按照相似性进行分组,每个组称为一个“簇”。

zhubeibei168的博客 4538

Python编程小技巧总结

前言 经常看到关于Python编程的小技巧,但是都没有记录下来,当下次运用时还是原来的写法,这不记录一下。 Python 之禅 Python 里有个小彩蛋: 在 Python Shell 里输入 import this 这段话被称作“Python 之禅”(The Zen of Python),它列举了一些 Python 所推崇的理念,比如: 优美胜于丑陋 明确胜于隐晦 简单胜于复杂 … 可读性很重...

小小博客 410

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python 小技巧

Python小技巧 下划线的使用 数字很大时,可以加下划线进行分割: num1=10000000000 num2=100000000 print (num1+num2) num1=10_000_000_000 num2=100_000_000 total=num1+num2 print (f'{total:,}') >>10,100,000,000 只想取序列的头和尾时,可以使用...

Jone_RY 214

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python 特有程序使用小技巧

Python 使用小技巧介绍1 Sleep Time2 Function argument unpacking3 Decorators4 Conditional Assignment5 Named formatting6 Plot6.1 matplotlib6.2 plotly 介绍 收录和介绍了各类Python使用中的小技巧,为大家敲代码的时光增添一些乐趣和便利 ???? 参考资料: Hidden features of Python - Stack Overflow Plotly Python Grap

大饼不会飞的博客 15万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

python小技巧

python 小技巧 python生成requirements.txt pip freeze > requirements.txt 安装python依赖库 pip install -r requirements.txt 错误集锦: pip Fatal error in launcher: Unable to create process using .. 解决办法(升级pip): python -m pip install --upgrade pip 备注:以后会陆续更新此帖。 ...

qq_43229040的博客 158

一些python常见的小技巧

一些python常见的小技巧 重复元素判定 使用set()函数来去除重复元素 def all_unique(lt): return len(lt) == len(set(lt)) a = [1,2,3,4,5,6,7,8,9,8,7,6,5] b = [1,2,3,4,5,6,7,8,9] all_unique(a) # False all_unique(b) # True ...

天青如水的博客 358

python实用30个小技巧

1.原地交换两个数字 Python 提供了一个直观的在一行代码中赋值与交换(变量值)的方法,请参见下面的示例: In [1]: x,y = 10 ,20 In [2]: print(x,y) 10 20 In [3]: x, y = y, x In [4]: print(x,y) 20 10 赋值的右侧形成了一个新的元组,左侧立即解析(unpack)那个(未被引用的)元组到变量...

java276582434的博客 9395

python用法技巧_Python常用小技巧总结

本文实例总结了Python常用的小技巧。分享给大家供大家参考。具体分析如下:1. 获取本地mac地址:运行结果:e0cb4e0775852. del 的使用3. join 的使用4. 随机数用法:运行结果为:68b5. dict 的使用:6. map 的使用:7. [] 使用:[].remove( value )[].pop( index ) = value[].count( x ) = x在列表...

weixin_39866774的博客 69

【Python小技巧】100个Python使用小技巧2

Python语言简单、易入门,如今也越来越流行,我们可以用它来写数据分析、机器学习、web开发、脚本和自动化等,下面是100条Python使用的小技巧,适合在闲暇休息时刻快速进行阅读 目录26. 仅使用开始或结束索引的部分切片27.向下整除28.==和is之间的区别29.快速合并2个字典30.判断一个字符串是否大于另一个字符串31.判断字符串是否以特定字符开始32.使用id()找到变量的唯一id33.整数、浮点数、字符串、布尔值和元组都是不可变的34.字符串和元组是不可变的对象35.列表、集合和字典都是可.

十二月未央未眠 583

python常用小技巧_Python常用小技巧总结

本文实例总结了Python常用的小技巧。分享给大家供大家参考。具体分析如下:1. 获取本地mac地址: import uuidmac = uuid.uuid1().hex[-12:]print(mac)运行结果:e0cb4e0775852. del 的使用 a = ['b','c','d']del a[0]print(a)# 输出 ['c', 'd'] a = ['b','c','d']del a...

weixin_39966163的博客 123

python30个小技巧

转载:https://www.pythontab.com/html/2018/pythonjichu_0917/1351.html 编程中用到可以简化代码的30个小技巧,当然python的技巧远不止这些,让我们在学习的途中去发现宝藏吧。 推荐一个python网站取了一定有惊喜python中文开发者社区门户。 原地交换两个数字 x, y =10, 20 print(x, y) y, x = x, y print(x,y) 10 20 20 10 链状比较操作符 n = 10 print(1 &l

奔跑的蜗牛的博客 416

python input输入完 为什么会回显_10个Python小技巧

缘起:几天没更新了,总结一些Python小技巧,希望在Python路上的你能越走越远 1、条件判断 flag=True if flag: x=1 else: x=2 print(x)简化形式:flag=True x=1 if flag else 2 print(x) 2、累加求和sum=0 for i in range(0,101): sum +=i print(sum)利...

weixin_39738416的博客 328

python中没有request_不为人知的python request小技巧

原标题:不为人知的python request小技巧关于 Python requests ,在使用中,总结了一些小技巧把,记录下。1:保持请求之间的Cookies,我们可以这样做。 2:请求时,会加上headers,一般我们会写成这样唯一不便的是之后的代码每次都需要这么写,代码显得臃肿,所以我们可以这样: 3:默认requests请求失败后不会重试,但是我们跑case时难免遇到一些网络或外部原因导...

weixin_39654245的博客 472

python的小技巧一

python 的常用小技巧收集,掌握后,可以提高开发效率

hjc_042043的博客 1256
上一篇: Python 基础教程第三章 使用字符串
下一篇: SecuCRT 连接Linux自动设置颜色
echo960
博客等级 码龄14年 0粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值