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生成指定长度的随机数密码
Jan 23 Python
php使用递归与迭代实现快速排序示例
Jan 23 Python
Python中为什么要用self探讨
Apr 14 Python
编写Python脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
Python多线程结合队列下载百度音乐的方法
Jul 27 Python
Python读取指定日期邮件的实例
Feb 01 Python
Python3安装psycopy2以及遇到问题解决方法
Jul 03 Python
python读取tif图片时保留其16bit的编码格式实例
Jan 13 Python
python3 正则表达式基础廖雪峰
Mar 25 Python
Python通过递归函数输出嵌套列表元素
Oct 15 Python
Django缓存Cache使用详解
Nov 30 Python
Python日志模块logging用法
Jun 05 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几个数学计算的内部函数学习整理
2011/08/06 PHP
php curl中gzip的压缩性能测试实例分析
2016/11/08 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
2020/01/26 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
javascript调试说明
2010/06/07 Javascript
Js切换功能的简单方法
2010/11/23 Javascript
网页源代码保护(禁止右键、复制、另存为、查看源文件)
2012/05/23 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
简述Matlab中size()函数的用法
2016/03/20 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
详解.vue文件中监听input输入事件(oninput)
2017/09/19 Javascript
Angular自定义组件实现数据双向数据绑定的实例
2017/12/11 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
[04:46]2018年度玩家喜爱的电竞媒体-完美盛典
2018/12/16 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
详解python 注释、变量、类型
2018/08/10 Python
Python判断以什么结尾以什么开头的实例
2018/10/27 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
python 发送json数据操作实例分析
2019/10/15 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
Python基于callable函数检测对象是否可被调用
2020/10/16 Python
美国宠物商店:Wag.com
2016/10/25 全球购物
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
英文版银行求职信
2013/10/09 职场文书
付款承诺函范文
2015/01/21 职场文书
教师年度考核自我评鉴
2015/08/11 职场文书
高中优秀作文(范文)
2019/08/15 职场文书
css3实现背景图片半透明内容不透明的方法示例
2021/04/13 HTML / CSS
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL
css3应用示例:新增的选择器
2022/03/16 HTML / CSS
Java结构型设计模式之组合模式详解
2022/09/23 Java/Android