百科狗-知识改变命运!
--

Python 里面的一些小技巧

梵高1年前 (2023-11-21)阅读数 15#技术干货
文章标签字典

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

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

true_partifconditionelsefalse_part

a,b=2,3

c=aifa>belseb

a,b=2,1

c=aifa>belseb

>>>printc

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

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

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

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

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

[]

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

(3,4)

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

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

Python 里面的一些小技巧

'python'

>>>''or[]or()

()

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

a,b=2,1

c=(a>band[a]or[b])[0]

>>>printc

使用列表

a,b=2,7

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

>>>printc

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

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

>>>int(False)

0

>>>int(True)

字典(dict)

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

dict_items()

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

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

输出的结果:

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

下面我们分解下代码:

printdic.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=lambdad:d[0])

print(dict)

dict_get()

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

dic.get(‘a’,1)

31

dic.get(‘d’,1)

0

dic.get(‘f’,1)

1

D.get(k[,d])->D[k]ifkinD,elsed.ddefaultstoNone.

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

Image和Ndarray互相转换

importnumpyasnp

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

#Anarray,anyobjectexposingthearrayinterface,anobjectwhose

#__array__methodreturnsanarray,orany(nested)sequence.

以上内容为大家介绍了Python里面的一些小技巧,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:开发教育。http://www.baikegou.com/

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)