Python学习小技巧总结
三元条件判断的3种实现方法C语言中有三元条件表达式如 ab?a:bPython中没有三目运算符(?:)但Python有它自己的方式来实现类似的功能。这里介绍3种方法true_part if condition else false_parta,b2,3ca if ab else ba,b2,1ca if ab else b12printc2利用and-or条件判断的特性来实现三元条件判断首先介绍一下and和or的用法python 中的and从左到右计算表达式若所有值均为真则返回最后一个值若存在假返回第一个假值。无论是列表元组还是字符串空表示False非空表示True1234pythonand[]and(2,3)[]pythonand[2,3]and(3,4)(3,4)or 也是从左到右计算表达式存在真则返回第一个为真的值若均为假则返回最后一个值。1234pythonor[3,4]or()python or[]or()()然后我们利用and-or条件判断的特性来实现三元条件判断a,b2,1c (ab and [a] or [b])[0]12printc2使用列表a,b2,7c [b,a][ab]12printc7分析若ab为真由于真用1表示因此相当于c[b,a][1],即ca若ab为假由于假用0表示因此相当于c[b,a][0],即cb1234int(False)0int(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(), keylambda 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(), keylambda d:d[0])print(dict)dict_get()dic {‘a:31, ‘bc:5, ‘c:3, ‘asd:4, ‘aa:74, ‘d:0}123456dic.get(‘a,1)31dic.get(‘d,1)0dic.get(‘f,1)1D.get(k[,d]) - D[k] if k in D, else d. d defaults to None.如果k在字典中返回D[k]即value值否则返回dd默认为NoneImage和Ndarray互相转换123456789101112importnumpy as npfromPILimportImageimgImage.open(filepath)img_convert_ndarraynp.array(img)ndarray_convert_imgImage.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.