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 sys.path详细介绍
Oct 17 Python
python判断字符串是否纯数字的方法
Nov 19 Python
python简单猜数游戏实例
Jul 09 Python
python 处理dataframe中的时间字段方法
Apr 10 Python
Python基于xlrd模块操作Excel的方法示例
Jun 21 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
使用NumPy读取MNIST数据的实现代码示例
Nov 20 Python
python实现简单日志记录库glog的使用
Dec 13 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
python将字典内容写入json文件的实例代码
Aug 12 Python
Django路由层URLconf作用及原理解析
Sep 24 Python
python读取mat文件生成h5文件的实现
Jul 15 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程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
PHP 图片处理
2020/09/16 PHP
jQuery JSON的解析方式分享
2011/04/05 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
jQuery基本选择器(实例及表单域value的获取方法)
2016/05/20 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
JavaScript取得gridview中获取checkbox选中的值
2017/07/24 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
Vue.extend 编程式插入组件的实现
2019/11/18 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
vant中的toast轻提示实现代码
2020/11/04 Javascript
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
python之pandas用法大全
2018/03/13 Python
解决Mac下使用python的坑
2019/08/13 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
python删除某个目录文件夹的方法
2020/05/26 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
基于OpenCV的路面质量检测的实现
2020/11/04 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
新加坡时尚网上购物:Zalora新加坡
2016/07/26 全球购物
如何获得EntityManager
2014/02/09 面试题
幼儿园门卫制度
2014/01/29 职场文书
理财投资建议书
2014/03/12 职场文书
部队个人年终总结
2015/03/02 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
浅谈Redis的几个过期策略
2021/05/27 Redis
Prometheus 监控MySQL使用grafana展示
2021/08/30 MySQL
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技