Pythonic的一些用法

【AI实战派】从零部署YOLOv8:香橙派AIpro边缘端目标检测全流程解析 本文详细解析了在香橙派AIpro边缘设备上从零部署YOLOv8目标检测模型的全流程。内容涵盖硬件开箱、环境搭建、模型转换(ONNX到昇腾OM格式)以及编写Python推理脚本,并提供了性能优化与实战技巧,帮助开发者高效实现实时边缘AI应用。 阅读详情

从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过程中被忽略掉的多余的数据丢失了,在实现时需要注意。平时这个功能应该蛮好用。

Flexible H-Tree(灵活 H 树)与 Multi-Tap 时钟流程解析 通过灵活 H 树与多抽头技术的结合,复杂时钟架构可在保持电气对称性的同时适应不规则布局,为高性能、低功耗 SoC 设计提供高效的时钟网络解决方案。 阅读详情

相关推荐

ESP32S3编译micropython固件

编译ESP32芯片的micropython固件

m0_73253860的博客 2553

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

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

Trb201013的博客 2267

洛谷 P5736 【深基7.例2】质数筛

题目描述 输入 n(n\le100)n(n≤100) 个不大于 100000 的整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。 输入格式 无 输出格式 无 输入输出样例 输入 #1 复制 5 3 4 5 6 7 输出 #1 复制 3 5 7 板子题,使用一下线性筛 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using n

qq_37978559的博客 1117

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

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

weixin_39849888的博客 296

Verilog流水线CPU设计(超详细)

快把这一篇给更了

Ace Cheney的博客 7万+

Xilinx Vivado LDPC IP core,TSN IP core. 各种IP core

Xilinx Vivado LDPC IP core,TSN IP core. 各种IP core

qq_1432825237的博客 3988

什么是Pythonic?

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

eswang的优快云博客 1万+

手把手教你用smarteye搭建免费GB28181监控平台(含海康设备接入避坑指南)

本文提供了一份基于SmartEye搭建免费GB28181视频监控平台的实战指南。详细介绍了从服务器部署、GB28181协议核心配置,到海康威视等主流设备接入的完整流程,并重点分享了设备注册失败、无法预览等常见问题的深度排错方法,旨在帮助中小企业及开发者低成本实现多品牌监控设备的统一管理。

pz89012345的博客 326

Pythonic到底是什么玩意儿?

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

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

RK3588开发笔记-mipi csi接口imx415摄像头调试记录

摘要:本文详细介绍了RK3588开发板适配SONY IMX415 MIPI CSI摄像头的调试过程。从硬件环境准备(包括RK3588核心板、IMX415模块连接及测试工具)、软件环境配置(Linux 5.10内核、驱动状态确认),到设备树关键配置(MIPI链路、GPIO引脚、电源域等)都进行了详细说明。调试过程中通过dmesg日志、media-ctl拓扑分析等工具验证了摄像头驱动加载和图像采集功能。最终实现了800万像素高清图像采集,总结了硬件连接验证、信号完整性优化等关键经验,为类似MIPI摄像头调试提供

flypig has a dream! 880

【YOLO系列】YOLOv11详解:模型结构、损失函数、训练方法及代码实现

YOLOv11在目标检测领域实现重大突破,通过动态骨干网络(Dyna-Backbone)和FPN++架构,在保持高帧率(≥60FPS)的同时提升小目标检测精度(AP_S提升5.6%)。创新采用CIoU++损失函数和类别平衡Focal Loss,结合Mosaic-Plus数据增强,参数量减少18%至6.5M。实验显示,该模型在COCO数据集上实现更高mAP,特别适合移动端部署,Jetson Xavier平台能耗比优化至3.2W·ms⁻¹,支持目标检测、实例分割等多任务场景。关键创新包括动态深度调整和双向特征金

一碗白开水一 3443

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

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

艽野尘梦的博客 516

第186篇 前馈控制——提升跟踪精度的补充手段

文章摘要: 本文介绍了前馈控制的原理及其在工程中的应用。与反馈控制不同,前馈控制通过提前预测目标值或扰动信息来生成控制量,避免误差出现后再纠正的延迟问题,适用于机器人、机械臂等高速运动场景。前馈控制通常与PID反馈配合使用,前者提供粗调,后者进行微调。文章详细讲解了前馈增益的调节方法(模型法、实验法、自适应法)及两种前馈类型(指令前馈和扰动前馈),并提供了代码示例和面试实战建议,强调前馈与反馈的协同设计是提升控制精度的关键。最后预告了下一篇将讨论串级PID控制架构。

郑伟强dev的专栏 397

字典对象的Pythonic用法:上篇

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

Python之禅的专栏 245

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

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

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

weixin_39548972的博客 137

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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':'宅男'} 252

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

字典对象的pythonic用法:下篇

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

Python之禅的专栏 270

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

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

weixin_30840253的博客 217

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

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

SnowyWolf的专栏 1301

OpenAvatarChat SenseVoice ASR Handler 使用指南:基于 FunASR 的语音识别配置与源码解析

本篇指南围绕 OpenAvatarChat 的 SenseVoice ASR Handler 展开,该模块基于 FunASR 推理框架封装 SenseVoice 语音识别模型,在对话流水线中承担"将用户语音(HUMAN_AUDIO)转换为文本(HUMAN_TEXT)"的关键职责。读完本文,你将掌握 SenseVoice 在 OpenAvatarChat 中的配置参数含义、模型下载与本地模型切换方法

gitblog_00713的博客 397

字典对象的 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的博客 139

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

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

weixin_39959298的博客 963

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 1856

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的博客 562

Pythonic到底是什么玩意儿

Pythonic到底是什么玩意儿

qq_44925249的博客 193
上一篇: ubuntu16.04下安装docker
下一篇: Ubuntu16.04软件中心闪退
felcon
博客等级 码龄19年 33粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值