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 相关文章推荐
在Django中使用Sitemap的方法讲解
Jul 22 Python
python 写入csv乱码问题解决方法
Oct 23 Python
Python 高级专用类方法的实例详解
Sep 11 Python
使用 Python 实现微信公众号粉丝迁移流程
Jan 03 Python
python将字典内容存入mysql实例代码
Jan 18 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
Feb 05 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
Python IDLE清空窗口的实例
Jun 25 Python
python实现字符串和字典的转换
Sep 29 Python
使用pickle存储数据dump 和 load实例讲解
Dec 30 Python
flask项目集成swagger的方法
Dec 09 Python
opencv实现图像平移效果
Mar 24 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中使用hidef扩展代替define提高性能
2015/04/09 PHP
php排序算法实例分析
2016/10/17 PHP
使javascript也能包含文件
2006/10/26 Javascript
一些经常会用到的Javascript检测函数
2010/05/31 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
值得学习的bootstrap fileinput文件上传工具
2016/11/08 Javascript
原生js轮播(仿慕课网)
2017/02/15 Javascript
js实现一个简单的数字时钟效果
2017/03/29 Javascript
微信小程序url与token设置详解
2017/09/26 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
简单说说如何使用vue-router插件的方法
2019/04/08 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
[02:10]2018DOTA2亚洲邀请赛赛前采访-Liquid
2018/04/03 DOTA
Python实现从URL地址提取文件名的方法
2015/05/15 Python
Python随机数random模块使用指南
2016/09/09 Python
Python贪吃蛇游戏编写代码
2020/10/26 Python
python字符串string的内置方法实例详解
2018/05/14 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
django实现模型字段动态choice的操作
2020/04/01 Python
详解HTML5通讯录获取指定多个人的信息
2016/12/20 HTML / CSS
美国男女折扣服饰百货连锁店:Stein Mart
2017/05/02 全球购物
英国最好的温室之家:Greenhouses Direct
2019/07/13 全球购物
节水标语大全
2014/06/11 职场文书
物理系毕业生自荐书
2014/06/13 职场文书
税务干部群众路线教育实践活动自我剖析材料
2014/09/21 职场文书
员工辞职信怎么写
2015/02/27 职场文书
教师素质教育心得体会
2016/01/19 职场文书
2016年安康杯竞赛活动总结
2016/04/05 职场文书
如何用Navicat操作MySQL
2021/05/12 MySQL