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 相关文章推荐
python3生成随机数实例
Oct 20 Python
Python中的字典遍历备忘
Jan 17 Python
浅谈Python爬取网页的编码处理
Nov 04 Python
python @property的用法及含义全面解析
Feb 01 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
新手入门Python编程的8个实用建议
Jul 12 Python
Python 实现大整数乘法算法的示例代码
Sep 17 Python
在django admin中配置搜索域是一个外键时的处理方法
May 20 Python
实例代码讲解Python 线程池
Aug 24 Python
Python图像读写方法对比
Nov 16 Python
Python3压缩和解压缩实现代码
Mar 01 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 编写的日历
2006/10/09 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
微信公众号点击菜单即可打开并登录微站的实现方法
2014/11/14 PHP
thinkphp多表查询两表有重复相同字段的完美解决方法
2016/09/22 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
通用JS事件写法实现代码
2009/01/07 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
jQuery 特性操作详解及实例代码
2016/09/29 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
jquery submit()不能提交表单的解决方法
2017/04/24 jQuery
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
vue 的keep-alive缓存功能的实现
2018/03/22 Javascript
Electron 调用命令行(cmd)
2019/09/23 Javascript
[01:31]完美与DOTA2历程
2014/07/31 DOTA
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
[02:23]完美世界全国高校联赛街访DOTA2第一期
2019/11/28 DOTA
MySQLdb ImportError: libmysqlclient.so.18解决方法
2014/08/21 Python
python如何实现excel数据添加到mongodb
2015/07/30 Python
python数组循环处理方法
2019/08/26 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
大学生表扬信范文
2014/01/09 职场文书
青春励志演讲稿范文
2014/08/25 职场文书
海洋天堂观后感
2015/06/05 职场文书
学校隐患排查制度
2015/08/05 职场文书
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python
JS前端监控采集用户行为的N种姿势
2022/07/23 Javascript