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中对list去重的多种方法
Sep 18 Python
Python multiprocessing.Manager介绍和实例(进程间共享数据)
Nov 21 Python
Python生成随机MAC地址
Mar 10 Python
Python使用Django实现博客系统完整版
Sep 29 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
wxpython绘制音频效果
Nov 18 Python
Python Gluon参数和模块命名操作教程
Dec 18 Python
详解python opencv、scikit-image和PIL图像处理库比较
Dec 26 Python
python 画图 图例自由定义方式
Apr 17 Python
解决python cv2.imread 读取中文路径的图片返回为None的问题
Jun 02 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 Python
Python实现为PDF去除水印的示例代码
Apr 03 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
把从SQL中取出的数据转化成XMl格式
2006/10/09 PHP
PHP VS ASP
2006/10/09 PHP
PHP Pear 安装及使用
2009/03/19 PHP
使用URL传输SESSION信息
2015/07/14 PHP
php中define用法实例
2015/07/30 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
一个网页标题title的闪动提示效果实现思路
2014/03/22 Javascript
JavaScript判断undefined类型的正确方法
2015/06/30 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
基于jQuery Bar Indicator 插件实现进度条展示效果
2015/09/30 Javascript
jQuery+CSS3实现仿花瓣网固定顶部位置带悬浮效果的导航菜单
2016/09/21 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
webpack配置打包后图片路径出错的解决
2018/04/26 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
uniapp实现可以左右滑动导航栏
2020/10/21 Javascript
python传递参数方式小结
2015/04/17 Python
Python对象中__del__方法起作用的条件详解
2018/11/01 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
详解Python3注释知识点
2019/02/19 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
校园之星获奖感言
2014/01/29 职场文书
社会实践活动总结
2015/02/05 职场文书
市级三好生竞选稿
2015/11/21 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
创业计划书之物流运送
2019/09/17 职场文书
Golang生成Excel文档的方法步骤
2021/06/09 Golang