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中的join()方法的使用
May 19 Python
python在windows下创建隐藏窗口子进程的方法
Jun 04 Python
python利用有道翻译实现"语言翻译器"的功能实例
Nov 14 Python
Python2中文处理纪要的实现方法
Mar 10 Python
Numpy数组的保存与读取方法
Apr 04 Python
对python中使用requests模块参数编码的不同处理方法
May 18 Python
解决Django的request.POST获取不到内容的问题
May 28 Python
python opencv如何实现图片绘制
Jan 19 Python
django为Form生成的label标签添加class方式
May 20 Python
Python制作简单的剪刀石头布游戏
Dec 10 Python
python 自动化偷懒的四个实用操作
Apr 11 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代码优化技巧小结
2015/09/29 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
php生成微信红包数组的方法
2019/09/05 PHP
关于php开启错误提示的总结
2019/09/24 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
Javascript 复制数组实现代码
2009/11/26 Javascript
让JavaScript拥有类似Lambda表达式编程能力的方法
2010/09/12 Javascript
poshytip 基于jquery的 插件 主要用于显示微博人的图像和鼠标提示等
2012/10/12 Javascript
canvas学习之API整理笔记(一)
2016/12/29 Javascript
ES6学习教程之块级作用域详解
2017/10/09 Javascript
微信小程序textarea层级过高的解决方法
2019/03/04 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
解决React在安装antd之后出现的Can't resolve './locale'问题(推荐)
2020/05/03 Javascript
微信小程序tab左右滑动切换功能的实现代码
2021/02/08 Javascript
[01:32:10]NAVI vs VG Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
python 七种邮件内容发送方法实例
2014/04/22 Python
python获取微信企业号打卡数据并生成windows计划任务
2019/04/30 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
python+mysql实现个人论文管理系统
2019/10/25 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
python数据爬下来保存的位置
2020/02/17 Python
Python图像处理库PIL的ImageFilter模块使用介绍
2020/02/26 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
土建资料员岗位职责
2014/01/04 职场文书
学生会个人自荐书范文
2014/02/12 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
大学生暑期实践感言
2014/02/26 职场文书
交通事故委托书范本
2014/09/28 职场文书
民政工作个人总结
2015/02/28 职场文书
事业单位财务人员岗位职责
2015/04/14 职场文书
消防宣传语大全
2015/07/13 职场文书
财务管理制度范本
2015/08/04 职场文书
python实现的人脸识别打卡系统
2021/05/08 Python
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL