Pythonic的一些用法

Linux下科大讯飞离线语音识别SDK从下载到实战(附常见问题解决) 本文详细介绍了在Linux系统下,如何从科大讯飞开放平台获取离线语音识别SDK,完成环境准备、编译部署到实战开发的完整流程。文章重点解析了SDK目录结构、语法词典定制、示例代码修改,并针对开发中常见的“词典加载失败”、音频格式、交叉编译及性能优化等问题提供了深度解决方案,助力嵌入式与IoT开发者快速实现稳定可靠的离线命令识别功能。 阅读详情

从Java转到Python,阅读源码的时候发现了一些有趣的小用法,在这里总结一下。

for和if的简化

代码为:

list1 = [1, 2, 3, 4, 5, 6, 7 ]

rs = ([r if r%2==0 else r+10 for r in list2])
print rs

执行结果为:

[11, 2, 13, 4, 15, 6, 17]

代码里对for和if进行了简化,并对if进行后置

这里的for语句中的括号可以多玩一下,单独提出来吧

list1 = [1, 2, 3, 4, 5, 6, 7 ]
rs = ([r for r in list1])
print rs, type(rs)

运行结果为:

[1, 2, 3, 4, 5, 6, 7] <type 'list'>

如果去掉最外层的(),改为rs = [r for r in list1],得到同样的结果。
如果将[]改为(),结果发生了变化:

<generator object <genexpr> at 0x7f96095b1780> <type 'generator'>

生成的不再是list,也不是元祖,而是一个generator。

链式比较

在java里比较不爽的是比较基本都是二元操作,像1<=a<=5这样的操作只能写成两个式子,而在python里可以直接连接着写。

a=2
print 1<a<5 #结果为True

关于真值

Python里对任意对象都可以直接判断其是否为真

类型TrueFalse
字符串非空空字符串''
数字非0数字0
容器非空空容器() [] {}
其它任意非FalseNone

字典默认值

字典的get(key, value)方法可以指定默认值,如果不存在该key,则返回默认值value。这在用来统计key出现的数量时很有用。

循环和异常中的else

大部分语言中,else都只和if一起出现,而在python中,else还可以和for、while一起出现,用来判定是否退出循环。
例如:

for x in xrange(1,5):
    if x == 3:
        print 'yes, it's 3!'
        break
else:
    print 'sorry, no 3!'

如果在Java里,最后一句print需要额外的一个判断变量和if语句。
而在python中,else 中的语句会在循环正常执行完(即不是通过 break 跳出而中断)的情况下执行,while … else 也一样。

此外,else还会出现在try/except/else中,如果没有发生异常,则会执行else之后的代码。

enumerate函数

enumerate函数在遍历的时候同时返回索引和值,而且还可以指定索引的起始位置。

list1 = [1, 2, 3, 4, 5, 6, 7 ]
for i, e in enumerate(list1, 1):
    print i, e

表示从第二个元素开始遍历,其中i为索引,e为值。

zip函数

写函数时会遇到属性问题,比如说一个人的名字、年龄、地址等,可以存成几个字典,也可以单独存成list,然后使用zip函数打包。
zip函数的作用是接受一系列可迭代对象,并将其中的元素打包为元组(tuple),然后返回由这些元组构成的列表(list)。如果说这些对象长度不等,那么返回的列表长度与最短的对象的长度相同。
例如:

list1 = [1, 2, 3, 4, 5, 6, 7 ]
list2 = ['a', 'b', 'c', 'd']
list3 = ['a2', 'b2', 'c2', 'd2', 'e2']
print zip(list1, list2)
print zip(list1, list2, list3)

输出为

[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
[(1, 'a', 'a2'), (2, 'b', 'b2'), (3, 'c', 'c2'), (4, 'd', 'd2')]

zip()还可以配合*实现逆操作

rs = zip(list1, list2, list3)
rs
print zip(*rs)

输出为:

[(1, 'a', 'a2'), (2, 'b', 'b2'), (3, 'c', 'c2'), (4, 'd', 'd2')]
[(1, 2, 3, 4), ('a', 'b', 'c', 'd'), ('a2', 'b2', 'c2', 'd2')]

可见虽然实现了拆分,但是并不能得到原始的数据,在zip过程中被忽略掉的多余的数据丢失了,在实现时需要注意。平时这个功能应该蛮好用。

伺服电机三环控制实战:从参数整定到系统优化 本文以实战视角,深入解析伺服电机三环控制(位置环、速度环、电流环)的参数整定与系统优化全流程。文章摒弃复杂理论,通过生动的比喻和分步调试指南,详细阐述了从电流环快速响应、速度环平滑调节到位置环精准定位的调试方法,并提供了常见问题排查与进阶优化技巧,帮助工程师有效提升伺服系统性能与稳定性。 阅读详情

相关推荐

CTF——流量分析题型整理总结

我见过的流量分析类型的题目总结: 一,ping 报文信息 (icmp协议) 二,上传/下载文件(蓝牙obex,http,难:文件的分段上传/下载) 三,sql注入攻击 四,访问特定的加密解密网站(md5,base64) 五,后台扫描+弱密码爆破+菜刀 六,usb流量分析 七,WiFi无线密码破解 八,根据一组流量包了解黑客的具体行为 例题: 一,ping 报文信息 (icm...

小锤队长的博客 5万+

Python语法和语言特性:理解Pythonic方式的最佳实践

Python,作为一门强大而灵活的编程语言,以其简洁、优雅的语法和独特的设计哲学而备受开发者喜爱。这门语言鼓励开发者采用一种被称为“Pythonic”的编码方式,即符合Python语言设计原则和惯例的编码方式。理解Pythonic的最佳实践不仅有助于提高代码的可读性和可维护性,还能更好地利用Python语言的强大特性。

Trb201013的博客 2263

测试用例设计工具大盘点:总有一款适合你

本文旨在帮助测试工程师、开发人员及团队管理者快速了解主流测试用例设计工具的特点、适用场景和选择逻辑。覆盖工具类型包括传统文档工具、开源管理工具、商业集成平台及新兴AI工具,范围涵盖中小团队到大型企业的不同需求。本文从“测试用例设计的痛点”切入,用生活案例解释核心概念;接着按“工具类型”分类盘点主流工具(附优缺点对比表);再通过“小团队/中大型团队/敏捷团队”等真实场景教你选工具;最后展望AI等未来趋势,帮你“一次学透,终身受用”。

项目管理的博客 1574

python是啥玩意-Pythonic到底是什么玩意儿?

作者:Martijn Faassen注:Martijn 是 Zope 领域的专家,他为 Zope 系列产品做了许多开发工作,也开发了 lxml 等多个开源产品。你可以在这里了解一下他的信息http://www.zope.org/Members/faassen。这篇文章写于 2005 年,虽然有少部分内容(主要是例子)看起来已经有些过时,但即便是在今天,它的中心思想依然有极高的指导意义。这是几个月前...

weixin_39849888的博客 292

什么是Pythonic?

震惊,这篇文章的阅读量竟然远远超过我写的其他很多好文章,可见现在Python的学习有多么火热了。 因为是早期写的文章,质量很一般,看到这么多访问着实惶恐,现在本人主要致力于前端学习,但是Python作为带我入门的语言,自然还是十分喜欢的,随着越学越多,对于语言风格其实有了更深的认识,推荐大家不要局限于一种语言的设计风格,如果真的爱,请博采众长,以集大成。 下面是原文,基本没有修改过,小白看个...

eswang的CSDN博客 1万+

Pythonic到底是什么玩意儿?

Pythonic到底是什么玩意儿?作者:Martijn Faassen译者:赖勇浩(http://blog.csdn.net/lanphaday)原文地址:http://faassen.n--tree.net/blog/view/weblog/2005/08/06/0注:Martijn 是 Zope 领域的专家,他为 Zope 系列产品做了许多开发工作,也开发了 lxml 等多个开

赖勇浩的编程私伙局 4万+

几个更优雅、更高效 Pythonic 代码写法!

本文分享几个鲜为人知的 Pythonic 技巧。这些技巧非常有用,但并不广为人知。通过学习和使用这些技巧,可以帮你节省时间和精力,并使你的代码更加优雅和高效。

艽野尘梦的博客 512

字典对象的Pythonic用法:上篇

字典对象在Python中作为最常用的数据结构之一,和数字、字符串、列表、元组并列为5大基本数据结构,字典中的元素通过键来存取,而非像列表一样通过偏移存取。笔者总结了字典的...

Python之禅的专栏 239

动态对象键_适用于字典对象的Pythonic用法

点击上方“Python小白集训营”,选“星标”公众号重磅干货,第一时间送达图 |Pexels日期|2021.1.4今天我们的百日计划中解释到了字典对象,这是与数字、字符串、列表、元组并列为五大基本数据结构。字典中的元素往往通过键来存取,而不是像列表那样,通过偏移进行存取。以下为字典中的Pythonic用法,已经为大家整理完毕。1.使用in/not in 检查key是否存在于字典想要...

weixin_39548972的博客 135

pythonic用法

python 语言 倡导 简单 简洁 优美   记录一些 Pythonic用法   1:使用TAB 来缩进   2:交换2个元素值 a,b=b,a   3:  list 元素 字符相加 list1=['a','b','c']    str1=''.join(list1)   4: 打开文件     with open('xxx.xx') as fp:          ...

{'name':'hqman','type':'宅男'} 249

字典对象的pythonic用法:下篇

字典对象在Python中作为最常用的数据结构之一,和数字、字符串、列表、元组并列为5大基本数据结构,如果把列表看作是有序集合,那么字典就是无序的集合,字典中的元素通过键来...

Python之禅的专栏 268

字典对象的 Pythonic 用法(上篇)

字典对象在Python中作为最常用的数据结构之一,和数字、字符串、列表、元组并列为5大基本数据结构,字典中的元素通过键来存取,而非像列表一样通过偏移存取。笔者总结了字典的一些常用Pyhonic用法,这是字典的Pythonic用法的上篇 0. 使用 in/not in 检查 key 是否存在于字典 判断某个 key 是否存在于字典中时,一般初学者想到的方法是,先以列表的形式把字典所有...

weixin_30840253的博客 216

字典对象的Pythonic用法(上篇)

字典对象的 Pythonic 用法(上篇)  字典对象在Python中作为最常用的数据结构之一,和数字、字符串、列表、元组并列为5大基本数据结构,字典中的元素通过键来存取,而非像列表一样通过偏移存取。笔者总结了字典的一些常用Pyhonic用法,这是字典的Pythonic用法的上篇 0. 使用 in/not in 检查 key 是否存在于字

SnowyWolf的专栏 1300

Python字典高级用法:wr/write-pythonic-code-demos项目中的性能优化与合并技巧

在Python编程中,字典(dictionary)是一种非常实用的数据结构,它以键值对的形式存储数据,提供了高效的查找和修改操作。在wr/write-pythonic-code-demos项目中,我们可以学习到许多Python字典的高级用法,包括性能优化和合并技巧,这些技巧能够帮助我们编写更高效、更Pythonic的代码。 ## 字典性能优化:从列表查找的低效到字典的极速 在处理大量数据时,查

gitblog_00713的博客 385

字典对象的 Pythonic 用法(上篇:转载)

  转载:https://mp.weixin.qq.com/s?timestamp=1498528588&amp;src=3&amp;ver=1&amp;signature=DfFeOFPXy44ObCMO3yMBLLgt5iFzbFAuShvog4m*JYf1w-gLIDZd7VoPWJN5f36DbVcaBJi33DkfXw6i-h*F7t0-D5-AJsAX*NeUCQAvfR4AYY6g5...

weixin_34112181的博客 137

pythonic是什么_Pythonic到底是什么玩意儿?

这是几个月前在EuroPython邮件列表(主要用来组织和计划EuroPython会议的邮件列表)出现的问题。这是一个非常有意思的问题,我看到这个词被无数次地使用,但鲜有人尝试解释它的含义。在这条线索之后,许多不同的人,包括我自己,都给出了自己的答案。现在我把我的答案放到博客上,并且润色了一下,希望它能对您有所增益。Pythonnic是一个模糊的概念,尽管没有“智能”或“生命”那么模糊,但当你尝试...

weixin_39959298的博客 961

pythonic code_全栈之后端开发系列 - 将Python代码转化为美丽的、习惯用法Pythonic代码...

Now in its 29th year (and still going strong in terms of popularity), Python stands out for its distinctive syntax compared to those programming languages based on C. Programmers appreciate how Python...

weixin_33164198的博客 352

python3 字典(高级用法pythonic

请保持自己一颗时刻学习德心,读书三遍,其意自现。。。 学了本文你能学到什么?仅供学习,如有疑问,请留言。。。 目录 1.字典的排序: 2.字典取值 3.字典中提取部分子集 4.字典的计算(举两个梨子) 5.itertools 1.字典的排序: sorted()函数 my_dict={"cc":100,"aa":200,"bb":10} #x[0]表示按照key排序,sorte...

Songsong 1850

python中key的用法_python 字典操作中has_key() 和 in 那个使用更加pythonic

python 字典操作中has_key() 和 in 比较。在写代码时,使用has_key()和in都可以达到我们想要的效果,那么使用has_key()和in那个更加pythonic?d = {'a': 1, 'b': 2}'a' in dTrue或者d = {'a': 1, 'b': 2}d.has_key('a')True从运算速度来比较:python2比较:> python2 -mtimei...

weixin_39526651的博客 560

Pythonic到底是什么玩意儿

Pythonic到底是什么玩意儿

qq_44925249的博客 193

光伏发电板红外图像鸟粪检测数据集VOC+YOLO格式173张1类别.7z

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):173标注数量(xml文件个数):173标注数量(txt文件个数):173标注类别数:1标注类别名称:["guano"]每个类别标注的框数:guano 框数 = 574总框数:574使用标注工具:labelImg标注规则:对类别进行画矩形框重要说明:暂无特别声明:本数据集不对训练的模型或者权重文件精度作任何保证,数据集只提供准确且合理标注更多信息:https://blog.csdn.net/FL1623863129/article/details/141465073

pycharm社区安装包pycharm-community-2020.3.5.dmg

pycharm社区安装包pycharm-community-2020.3.5.dmg

上一篇: ubuntu16.04下安装docker
下一篇: Ubuntu16.04软件中心闪退
felcon
博客等级 码龄19年 33粉丝 110原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值