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

Python学习小技巧总结

三元条件判断的3种实现方法

C语言中有三元条件表达式,如 a>b?a:b,Python中没有三目运算符(?:),但Python有它自己的方式来实现类似的功能。这里介绍3种方法:

true_part if condition else false_part

a,b=2,3
c=a if a>b else b

a,b=2,1
c=a if a>b else b

1

2

>>>printc

2

利用and-or条件判断的特性来实现三元条件判断

首先介绍一下,and和or的用法:

python 中的and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。

无论是列表,元组还是字符串,空表示False,非空表示True

1

2

3

4

>>>'python'and[]and(2,3)

[]

>>>'python'and[2,3]and(3,4)

(3,4)

or 也是从左到右计算表达式,存在真,则返回第一个为真的值,若均为假,则返回最后一个值。

1

2

3

4

>>>'python'or[3,4]or()

'python'

>>> ''or[]or()

()

然后,我们利用and-or条件判断的特性来实现三元条件判断:

a,b=2,1
c = (a>b and [a] or [b])[0]

1

2

>>>printc

2

使用列表

a,b=2,7
c = [b,a][a>b]

1

2

>>>printc

7

分析:若a>b为真,由于真用1表示,因此相当于c=[b,a][1],即c=a

若a>b为假,由于假用0表示,因此相当于c=[b,a][0],即c=b

1

2

3

4

>>>int(False)

0

>>>int(True)

1

字典(dict)

以下问题都是在用Python写KNN的时候遇到的:

dict_items()

python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:

1 下面的是按照value的值从大到小的顺序来排序。

dic = {‘a':31, ‘bc':5, ‘c':3, ‘asd':4, ‘aa':74, ‘d':0}
dict= sorted(dic.items(), key=lambda d:d[1], reverse = True)
print(dict)

输出的结果:

[(‘aa', 74), (‘a', 31), (‘bc', 5), (‘asd', 4), (‘c', 3), (‘d', 0)]

下面我们分解下代码:

print dic.items() 得到[(键,值)]的列表。

然后用sorted方法,通过key这个参数,指定排序是按照value,也就是元素d[1]的值来排序。reverse = True表示是需要翻转的,默认是从小到大,翻转的话,那就是从大到小。

2 对字典按键(key)排序:

dic = {‘a':31, ‘bc':5, ‘c':3, ‘asd':4, ‘aa':74, ‘d':0}
dict= sorted(dic.items(), key=lambda d:d[0])
print(dict)

dict_get()

dic = {‘a':31, ‘bc':5, ‘c':3, ‘asd':4, ‘aa':74, ‘d':0}

1

2

3

4

5

6

dic.get(‘a',1)

31

dic.get(‘d',1)

0

dic.get(‘f',1)

1

D.get(k[,d]) -> D[k] if k in D, else d. d defaults to None.

如果k在字典中,返回D[k],即value值,否则返回d,d默认为None

Image和Ndarray互相转换

1

2

3

4

5

6

7

8

9

10

11

12

importnumpy as np

fromPILimportImage

img=Image.open(filepath)

img_convert_ndarray=np.array(img)

ndarray_convert_img=Image.fromarray(img_convert_ndarray )

# np.array(object) 这个函数很强大啊,看源码里面给的注释

# object : array_like

# An array, any object exposing the array interface, an object whose

# __array__ method returns an array, or any (nested) sequence.

http://www.jsqmd.com/news/807664/

相关文章:

  • Qwen Code /review功能大升级
  • Modelsim仿真Verilog正交调制解调:如何搞定Testbench、数据导入与结果对比(附Matlab脚本)
  • 基于ChatGPT与Next.js的React组件自然语言生成器开发实战
  • 国内主流英国棕石材厂家核心维度实测综合排行 - 奔跑123
  • 从文档下载到成功调通Taotoken API的全流程耗时与体验记录
  • WarcraftHelper:让魔兽争霸3在现代电脑上重获新生的终极兼容神器
  • 基于OpenClaw的GitHub Trending自动化推送工具设计与实践
  • 如何让老旧安卓电视流畅播放直播节目?mytv-android原生应用解决方案
  • 番茄小说下载器:Rust重构的全功能跨平台下载解决方案
  • 水头镇英国棕石材厂家排行:工艺与产能实测对比 - 奔跑123
  • 图像生成:从 GAN 到 Diffusion Models
  • Linux系统级音频处理:JDSP4Linux架构、DSP效果器与实战调音指南
  • 为什么92%的医生用错Perplexity PubMed?——顶级医学信息学家亲授3层语义校准法
  • 从Spline Component到可交互场景:用UE4蓝图动态构建一条可行走的悬空藤蔓桥
  • 国内英国棕石材供应商实力排行及核心参数对比 - 奔跑123
  • WeChatExporter:在Mac上完整备份微信聊天记录的终极指南
  • 编译fpc遇到的怪事
  • 告别X11!在Ubuntu 22.04上从源码编译Wayland+Weston桌面(保姆级避坑指南)
  • 如何高效使用Mermaid Live Editor:免费实时图表编辑器的完整指南
  • 徐州ISO9001质量管理体系服务机构排行 客观对比 - 奔跑123
  • 报数游戏问题
  • 深蓝词库转换:输入法词库迁移的终极免费解决方案
  • 程序员爸爸用React+Node.js+AI打造游戏化育儿系统,两周搞定习惯养成
  • 物联网设备如何从连接迈向智慧:边缘计算与数据融合实战解析
  • Spring AI Session API:大多数人用 ChatMemory 用错了场景
  • 徐州ISO9001质量管理体系机构排行:5家合规机构盘点 - 奔跑123
  • Xendit支付网关MCP服务端:东南亚支付集成的架构设计与工程实践
  • Shell脚本错误处理实战:用sh-guard提升Bash脚本健壮性
  • 打破虚拟化壁垒:VMware Unlocker如何让macOS在Windows/Linux上重生
  • PrismLauncher-Cracked:终极离线Minecraft启动器完整指南