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 相关文章推荐
使用go和python递归删除.ds store文件的方法
Jan 22 Python
python字典基本操作实例分析
Jul 11 Python
浅谈Python 对象内存占用
Jul 15 Python
python生成带有表格的图片实例
Feb 03 Python
django用户登录验证的完整示例代码
Jul 21 Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
python实现简单的五子棋游戏
Sep 01 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 Python
python time()的实例用法
Nov 03 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 Python
python绘图pyecharts+pandas的使用详解
Dec 13 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
图象函数中的中文显示
2006/10/09 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
Apache下禁止php文件被直接访问的解决方案
2013/04/25 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
详解PHP执行定时任务的实现思路
2015/12/21 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
ThinkPHP静态缓存简单配置和使用方法详解
2016/03/23 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
PHP addcslashes()函数讲解
2019/02/03 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
js css样式操作代码(批量操作)
2009/10/09 Javascript
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
Javascript中使用parseInt函数需要注意的问题
2015/04/02 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
纯js模拟div层弹性运动的方法
2015/07/27 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
2016/04/18 Javascript
js enter键激发事件实例代码
2016/08/17 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
[02:36]DOTA2亚洲邀请赛小组赛精彩集锦:奇迹哥卡尔秀翻全场
2017/03/28 DOTA
Python中字典和JSON互转操作实例
2015/01/19 Python
python开启debug模式的方法
2019/06/27 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
python 调整图片亮度的示例
2020/12/03 Python
台湾屈臣氏网路商店:Watsons台湾
2020/12/29 全球购物
数控技术应届生求职信
2013/11/13 职场文书
卫生安全检查制度
2014/02/04 职场文书
给校长的建议书500字
2014/05/15 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL