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 相关文章推荐
wxpython中自定义事件的实现与使用方法分析
Jul 21 Python
Python生成随机密码的方法
Jun 16 Python
python tensorflow学习之识别单张图片的实现的示例
Feb 09 Python
Python发送http请求解析返回json的实例
Mar 26 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
Apr 02 Python
python Django里CSRF 对应策略详解
Aug 05 Python
python数据归一化及三种方法详解
Aug 06 Python
Django 实现外键去除自动添加的后缀‘_id’
Nov 15 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
python drf各类组件的用法和作用
Jan 12 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/07/17 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
php使用google地图应用实例
2014/12/31 PHP
php PDO实现的事务回滚示例
2017/03/23 PHP
yii2项目实战之restful api授权验证详解
2017/05/20 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
javascript获取flash版本号的方法
2014/11/20 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
jquery制作LED 时钟特效
2015/02/01 Javascript
JavaScript性能优化之小知识总结
2015/11/20 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
d3绘制基本的柱形图的实现代码
2018/12/12 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
ptyhon实现sitemap生成示例
2014/03/30 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
python实现自动化上线脚本的示例
2019/07/01 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
python实现加密的方式总结
2020/01/19 Python
CSS3解决移动页面上点击链接触发色块的问题
2016/06/03 HTML / CSS
五个2015 年最佳HTML5 框架
2015/11/11 HTML / CSS
如何用PHP实现邮件发送
2012/12/26 面试题
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
工商企业管理实习自我鉴定
2013/12/04 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
2014高三学生考试作弊检讨书
2014/12/14 职场文书
保安辞职信范文
2015/02/28 职场文书
三年级作文之趣事作文
2019/11/04 职场文书
数据库之SQL技巧整理案例
2021/07/07 SQL Server
python字符串的一些常见实用操作
2022/04/06 Python
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android