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编码类型转换方法详解
Jul 01 Python
Python实现的径向基(RBF)神经网络示例
Feb 06 Python
python3+PyQt5+Qt Designer实现扩展对话框
Apr 20 Python
python实现简单图片物体标注工具
Mar 18 Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 Python
对django中foreignkey的简单使用详解
Jul 28 Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 Python
ubuntu上安装python的实例方法
Sep 30 Python
python绘制随机网络图形示例
Nov 21 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
May 16 Python
Python实现计算图像RGB均值方式
Jun 04 Python
Python中np.random.randint()参数详解及用法实例
Sep 23 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
《OVERLORD》第四季,终于等到你!
2020/03/02 日漫
获取URL文件名后缀
2013/10/24 PHP
php 批量添加多行文本框textarea一行一个
2014/06/03 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
PHP面向对象之工作单元(实例讲解)
2017/06/26 PHP
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
从数据结构分析看:用for each...in 比 for...in 要快些
2013/04/17 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
全面了解addEventListener和on的区别
2016/07/14 Javascript
JavaScript中三个等号和两个等号的区别(== 和 ===)浅析
2016/09/22 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
关于vue-router路径计算问题
2017/05/10 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
使用Python脚本将绝对url替换为相对url的教程
2015/04/24 Python
python利用re,bs4,requests模块获取股票数据
2019/07/29 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
Python3 实现爬取网站下所有URL方式
2020/01/16 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
2020/09/03 Python
领先的钻石和订婚戒指零售商:Diamonds-USA
2016/12/11 全球购物
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
中青班党性分析材料
2014/02/16 职场文书
社区娱乐活动方案
2014/08/21 职场文书
镇党委书记群众路线整改措施思想汇报
2014/10/13 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
红灯733-1型14管5波段半导体收音机
2021/04/22 无线电