Python学习小技巧总结


Posted in Python onJune 10, 2018

三元条件判断的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

>>> print c
2

利用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'
>>> '' or [] or ()
()

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

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

>>> print c
2

使用列表

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

>>> print c
7

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

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

>>> 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}

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互相转换

import numpy as np
from PIL import Image

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.
Python 相关文章推荐
python的正则表达式re模块的常用方法
Mar 09 Python
Python自动化测试ConfigParser模块读写配置文件
Aug 15 Python
Python中的__slots__示例详解
Jul 06 Python
python requests更换代理适用于IP频率限制的方法
Aug 21 Python
Django框架创建项目的方法入门教程
Nov 04 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
django中related_name的用法说明
May 20 Python
基于python和flask实现http接口过程解析
Jun 15 Python
10个python爬虫入门实例(小结)
Nov 01 Python
Python爬虫如何破解JS加密的Cookie
Nov 19 Python
Python如何快速找到多个字典中的公共键(key)
Apr 29 Python
python计算两个地址之间的距离方法
Jun 09 #Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 #Python
pandas 对每一列数据进行标准化的方法
Jun 09 #Python
Python实现读写INI配置文件的方法示例
Jun 09 #Python
Python实现读取机器硬件信息的方法示例
Jun 09 #Python
Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
Jun 09 #Python
Python操作mongodb数据库进行模糊查询操作示例
Jun 09 #Python
You might like
用PHP伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
php正则校验用户名介绍
2008/07/19 PHP
快速开发一个PHP扩展图文教程
2008/12/12 PHP
Zend的AutoLoad机制介绍
2012/09/27 PHP
thinkphp验证码显示不出来的解决方法
2014/03/29 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
2014/07/04 PHP
2014最热门的24个php类库汇总
2014/12/18 PHP
Thinkphp3.2实用篇之计算型验证码示例
2017/02/09 PHP
js中更短的 Array 类型转换
2011/10/30 Javascript
Node.js模块加载详解
2014/08/16 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
javascript实现密码验证
2015/11/10 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
EasyUI的DataGrid每行数据添加操作按钮的实现代码
2017/08/22 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
解决angularjs WdatePicker ng-model的问题
2018/09/13 Javascript
react native 仿微信聊天室实例代码
2019/09/17 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
Python实现结构体代码实例
2020/02/10 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
八一慰问活动方案
2014/02/07 职场文书
2014年小学班主任工作总结
2014/11/08 职场文书
2015年党员个人自我评价
2015/03/03 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
解决Pytorch修改预训练模型时遇到key不匹配的情况
2021/06/05 Python
SpringBoot整合Minio文件存储
2022/04/03 Java/Android