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脚本实现代码行数统计代码分享
Mar 10 Python
Python使用 Beanstalkd 做异步任务处理的方法
Apr 24 Python
Python爬虫框架Scrapy常用命令总结
Jul 26 Python
python批量修改图片后缀的方法(png到jpg)
Oct 25 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
Mar 14 Python
Python实现FTP文件传输的实例
Jul 07 Python
如何在python中写hive脚本
Nov 08 Python
python数据分析:关键字提取方式
Feb 24 Python
python 调整图片亮度的示例
Dec 03 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 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中HTTP_REFERER函数用法实例
2014/11/21 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
JavaScript高级程序设计 扩展--关于动态原型
2010/11/09 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
jquery实现的table排序功能示例
2017/03/10 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
JS实现的判断方法、变量是否存在功能示例
2020/03/28 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
vue递归组件实战之简单树形控件实例代码
2019/08/27 Javascript
JavaScript中如何对多维数组(矩阵)去重的实现
2019/12/04 Javascript
何时/使用 Vue3 render 函数的教程详解
2020/07/25 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
python实现保存网页到本地示例
2014/03/16 Python
Python返回真假值(True or False)小技巧
2015/04/10 Python
Python记录详细调用堆栈日志的方法
2015/05/05 Python
python中lambda()的用法
2017/11/16 Python
python生成密码字典的方法
2018/07/06 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
2018/10/17 Python
python 产生token及token验证的方法
2018/12/26 Python
django ManyToManyField多对多关系的实例详解
2019/08/09 Python
Django和Flask框架优缺点对比
2019/10/24 Python
使用Python构造hive insert语句说明
2020/06/06 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
static全局变量与普通的全局变量有什么区别
2014/05/27 面试题
什么是封装
2013/03/26 面试题
2014年机关作风建设工作总结
2014/10/23 职场文书
秦始皇兵马俑导游词
2015/02/02 职场文书
2015年班组长工作总结
2015/04/10 职场文书
拾金不昧表扬稿大全
2015/05/05 职场文书
八年级语文教学反思
2016/03/03 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android