Python学习小技巧总结
作者:sinat_34022298 发布时间:2021-09-21 09:28:49
三元条件判断的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.
来源:https://blog.csdn.net/sinat_34022298/article/details/77017013


猜你喜欢
- 本文为大家分享了oracle11g安装图文教程,供大家参考,具体内容如下0、安装环境1、安装包下载1)http://www.oracle.c
- 我们学习完推导式之后发现,推导式就是在容器中使用一个for循环而已,为什么没有元组推导式?原因就是“元组推导式&
- 在网上找到的随机不重复查询代码:select top 15 * from article&
- Mysql的connector/net5.0下载地址: http://dev.mysql.com/get/Downloads/Connect
- ndarray.ndim:维度ndarray.shape:形状ndarray.size:元素个数ndarray.dtype:元素数据类型nd
- //--------------------弹出层------------------- //popDivId:弹出层div的ID //dr
- 在vue中使用ant-design-vue组件官方地址:Ant Design Vue1. 安装首先使用vue-cli创建项目,然后进入项目,
- 题目:反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3-
- 本文实例讲述了Python实现统计python文件中代码,注释及空白对应的行数。分享给大家供大家参考,具体如下:其实代码和空白行很好统计,难
- 下面的这个函数实现的功能是列出某文件夹下的所有文件,以文件名字母排序,先数字后字母再到中文。<%
- 例如,当前网页中的url为https://www.baidu.com?a=111&b=222想要获取url中的a,b参数,代码如下:
- Mac系统上虽然自带PHP和Apache,但是有时不是我们想要的版本呢。今天我们就在macOS Sierra(10.12.1)上安装比较新的
- 技术背景在上一篇博客中,我们介绍了使用量子计算模拟器ProjectQ去生成一个随机数,也介绍了随机数的应用场景等。但是有些时候我们希望可以打
- 本文实例分析了Python星号*与**用法。分享给大家供大家参考,具体如下:1. 加了星号(*)的变量名会存放所有未命名的变量参数,不能存放
- 首先这个bak文件是SQL数据库的备份文件,要使用SQL恢复然后就可以查询了找到需要的文件注意解压出来有7GB+1、下载SQL server
- 上次帮朋友写过的一个简单切换效果,超级简单,但也比较适用.因为用到了CSS Sprite技术,DEMO中附带了IE6兼容png的JS.核心J
- Opencv-Python图像透视变换cv2.warpPerspective代码如下:# -*- coding:utf-8 -*-impor
- 本文实例讲述了Python对列表排序的方法。分享给大家供大家参考。具体分析如下:1、sort()函数sort()函数使用固定的排序算法对列表
- 一、低配logging日志总共分为以下五个级别,这个五个级别自下而上进行匹配 debug-->info-->warning--&
- 实现过程最近在尝试openai的相关函数,所以今天就来盘点盘点下 createChatCompletion 函数,听说是专门为了聊天创立的a