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的Flask框架中@app.route的用法教程
Mar 31 Python
Python实现堆排序的方法详解
May 03 Python
python虚拟环境virualenv的安装与使用
Dec 18 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 Python
python3个性签名设计实现代码
Jun 19 Python
Python简单爬虫导出CSV文件的实例讲解
Jul 06 Python
Python面向对象之接口、抽象类与多态详解
Aug 27 Python
Pycharm更换python解释器的方法
Oct 29 Python
用Python读取几十万行文本数据
Dec 24 Python
在python中求分布函数相关的包实例
Apr 15 Python
pandas按照列的值排序(某一列或者多列)
Dec 13 Python
详解Python自动化之文件自动化处理
Jun 21 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
PHP Undefined index报错的修复方法
2011/07/17 PHP
根据身份证号自动输出相关信息(籍贯,出身日期,性别)
2013/11/15 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
jQuery实现打开页面渐现效果示例
2016/07/27 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
layui中的switch开关实现方法
2019/09/03 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
[00:37]DOTA2上海特级锦标赛 Secert 战队宣传片
2016/03/03 DOTA
[01:32:22]DOTA2-DPC中国联赛 正赛 Ehome vs VG BO3 第一场 2月5日
2021/03/11 DOTA
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
Python中的对象,方法,类,实例,函数用法分析
2015/01/15 Python
Python爬取qq music中的音乐url及批量下载
2017/03/23 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
使用python 3实现发送邮件功能
2018/06/15 Python
Python3匿名函数用法示例
2018/07/25 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
python实现自动获取IP并发送到邮箱
2018/12/26 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
Python 学习教程之networkx
2019/04/15 Python
python 机器学习之支持向量机非线性回归SVR模型
2019/06/26 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
Django CBV类的用法详解
2019/07/26 Python
树莓派4B+opencv4+python 打开摄像头的实现方法
2019/10/18 Python
css3中transition属性详解
2014/09/02 HTML / CSS
致长跑运动员加油稿
2014/02/20 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
公司晚会主持词
2014/03/22 职场文书
社团活动总结怎么写
2014/06/30 职场文书
二审答辩状范文
2015/05/22 职场文书
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python
Vue Mint UI mt-swipe的使用方式
2022/06/05 Vue.js