news 2026/5/13 8:28:22

Python学习小技巧总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python学习小技巧总结

三元条件判断的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

1

2

>>>printc

2

利用and-or条件判断的特性来实现三元条件判断

首先介绍一下,and和or的用法:

python 中的and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第一个假值。

无论是列表,元组还是字符串,空表示False,非空表示True

1

2

3

4

>>>'python'and[]and(2,3)

[]

>>>'python'and[2,3]and(3,4)

(3,4)

or 也是从左到右计算表达式,存在真,则返回第一个为真的值,若均为假,则返回最后一个值。

1

2

3

4

>>>'python'or[3,4]or()

'python'

>>> ''or[]or()

()

然后,我们利用and-or条件判断的特性来实现三元条件判断:

a,b=2,1
c = (a>b and [a] or [b])[0]

1

2

>>>printc

2

使用列表

a,b=2,7
c = [b,a][a>b]

1

2

>>>printc

7

分析:若a>b为真,由于真用1表示,因此相当于c=[b,a][1],即c=a

若a>b为假,由于假用0表示,因此相当于c=[b,a][0],即c=b

1

2

3

4

>>>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}

1

2

3

4

5

6

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互相转换

1

2

3

4

5

6

7

8

9

10

11

12

importnumpy as np

fromPILimportImage

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.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 8:23:52

前后端分离人口老龄化社区服务与管理平台系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

系统架构设计### 摘要 随着人口老龄化问题日益突出,社区养老服务与管理需求快速增长,传统服务模式已无法满足高效、精准的管理要求。老龄化社区服务与管理平台旨在通过信息化手段整合资源,提升服务效率与质量。该系统聚焦老年人健康管理、生活…

作者头像 李华
网站建设 2026/5/13 8:20:13

报数游戏问题

一、题目描述100个人围成一圈,每个人有一个编码,编号从1开始到100。他们从1开始依次报数,报到为M的人自动退出圈圈,然后下一个人接着从1开始报数,直到剩余的人数小于M。请问最后剩余的人在原先的编号为多少&#xff1f…

作者头像 李华
网站建设 2026/5/13 8:19:15

车厘子质检缺陷检测数据集VOC+YOLO格式792张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):792标注数量(xml文件个数):792标注数量(txt文件个数):792标注类别数&…

作者头像 李华
网站建设 2026/5/13 8:17:07

ClawRank:模块化智能爬虫框架的设计、实现与实战应用

1. 项目概述:一个为开发者打造的“智能爬虫”工具箱最近在GitHub上闲逛,发现了一个挺有意思的项目,叫hansenliang/ClawRank。光看名字,Claw(爪子)和Rank(排名),很容易让人…

作者头像 李华
网站建设 2026/5/13 8:14:41

从游戏地图到3D建模:聊聊坐标系在程序员日常中的那些事儿

从游戏地图到3D建模:坐标系在程序员日常中的实战指南 当你第一次在Unity中拖拽一个游戏角色到场景中,是否好奇过为什么它的位置显示为(0,0,0)?当你在Three.js中尝试让相机环绕模型旋转时,有没有被那些角度参数搞得晕头转向&#…

作者头像 李华