编程小白必须知道的 15 个强大的 Python 单行代码

这里写目录标题

    • 三元运算符
    • 为多个变量赋值
    • 交换变量的值
    • 交换列表中的元素
    • 替换列表中的元素
    • 列表推导式与三元运算结合
    • 使用列表推导式
    • 从列表创建子列表
    • 更改列表元素类型
    • 使用列表推导式输出文件列表
    • 平展多维列表
    • 字典推导式
    • 集合推导式
    • 将文件读入生成器
    • 使用 Python -c 命令的单行代码

Python 中可以使用简短的代码片段实现一些强大操作的。在本文中,我将分享一些最常用的 Python 单行代码,这些代码在 Python 社区中很受欢迎并被广泛使用,因为代码更简洁、更易于理解。

三元运算符

三元运算允许根据条件为 True 或 False 来计算值。无需编写多行 if/else 语句,只需编写一行代码即可实现。

x = 1
y = 2
z = 1 if x > 0 and y > x else -1
print(z)

为多个变量赋值

可以同时为多个变量分配值,如下所示。

x, y = "Python", 123
print(x, y)

交换变量的值

要交换变量的值,只需执行以下操作,而无需像其他编程语言(如 Java 或 C)需要临时变量。

x, y = "Python", 123
x, y = y, x
print(x, y) 

交换列表中的元素

假设有一个列表,并且想将第一个元素与最后一个元素交换.

由于列表是可变的,可以通过索引号交换第一个和最后一个元素,来重新分配它们的值。

x = [1, 2, 3, 4, 5, 6]
x[0], x[5] = x[5], x[0]
print(x) # [6, 2, 3, 4, 5, 1]

如果要求交换列表中奇数位和偶数位置的元素,可以使用如下方法。

想交换第 2 个和第 1 个、第 4 个和第 3 个元素,依此类推。可以通过执行以下带有赋值操作的列表切片来实现。

x = [1, 2, 3, 4, 5, 6]
x[::2], x[1::2] = x[1::2], x[0::2]
print(x) # [2, 1, 4, 3, 6, 5]

x[::2] 表示偶数位 [2, 4, 6]

x[1::2] 表示奇数位 [1, 3, 5]

替换列表中的元素

如果想替换列表中每个奇数或偶数位置的元素,例如替换为 0,可以按如下方式进行重新赋值。

x = [1, 2, 3, 4, 5, 6]
x[1::2] = [0]*len(x[1::2])
print(x) # [1, 0, 3, 0, 5, 0]

列表推导式与三元运算结合

x = [1, 2, 3, 4, 5, 6]
y = [z if i % 2 == 0 else 0 for i, z in enumerate(x)]
print(y) # [1, 0, 3, 0, 5, 0]

使用列表推导式

通过使用列表推导式,可以使用特定过滤条件轻松地从当前序列生成新的列表。

例如,下面将生成一个介于 1 到 20 之间的偶数列表。

n = [i for i in range(1, 20) if i%2 == 0]
print(n)

从列表创建子列表

同样,可以从现有列表中获取一个子列表,其列表推导式如下。

x = [1, 2, 3, 4, 5, 6]
y = [i for i in x if i <4]
print(y) # [1, 2, 3]

更改列表元素类型

通过列表推导式,还可以将列表元素转换为另一种类型格式。例如,要将整数转换为字符。

x = [1, 2, 3, 4, 5, 6]
y = [chr(65+i) for i in x]
print(y) # ['B', 'C', 'D', 'E', 'F', 'G']

或者将大写转换为小写。

x = [1, 2, 3, 4, 5, 6]
y = [chr(65+i) for i in x]
z = [i.lower() for i in y]
print(z) # ['b', 'c', 'd', 'e', 'f', 'g']

以上所有操作也可以不使用列表推导式。

x = [1, 2, 3, 4, 5, 6]
y = list(map(lambda x : chr(65+x), x))
z = list(map(str.lower, y))
print(y) # ['B', 'C', 'D', 'E', 'F', 'G']
print(z) # ['b', 'c', 'd', 'e', 'f', 'g']

使用列表推导式输出文件列表

遍历当前文件夹,输出所有 .xlsx 文件。

import os
x = [f for d in os.walk(".") for f in d[2] if f.endswith(".xlsx")]
print(x)

平展多维列表

将多维列表平展为一维列表。

a = [[1,2], [3,4], [5,6]]
b = [y for x in a for y in x]
print(b) # [1, 2, 3, 4, 5, 6]

还可以使用 itertools 模块来实现。

import itertools
a = [[1,2], [3,4], [5,6]]
b = list(itertools.chain.from_iterable(a))
print(b) # [1, 2, 3, 4, 5, 6]

字典推导式

要从列表中生成字典,可以使用字典推导式。

x = [1, 2, 3, 4, 5, 6]
dict1 = {chr(65+i):v+65 for i, v in enumerate(x)}
print(dict1) # {'A': 66, 'B': 67, 'C': 68, 'D': 69, 'E': 70, 'F': 71}

集合推导式

x = [1, 2, 3, 4, 5, 6]
set1 = {chr(65+i) for i in x}
print(set1) # {'D', 'E', 'G', 'C', 'B', 'F'}

可以使用集合删除重复值。

x = [1, 2, 2, 4, 5, 5]
y = set(x)
print(y) # {1, 2, 4, 5}

将文件读入生成器

读取文件 test.txt 内容,写入生成器。

text = (line.strip() for line in open('test.txt', 'r'))
print(text) # <generator object <genexpr> at 0x000001B55175F760>
print(list(text)) # ['1', '2', '3', '4', '5', '6']

使用 Python -c 命令的单行代码

在不进入 Python 交互模式的情况下运行代码片段,可以在系统命令提示符窗口中使用 Python -c 选项执行代码。

例如,检查当前的 Python 版本:

python -c "import sys; print(sys.version.split()[0])"

检查环境变量的值:

python -c "import os;print(os.getenv('PATH').split(';'))"

在本文中,列举了一些常用的 Python 单行代码,这些单行代码将大大提高代码可读性和编码效率。不过在使用代码之前,还需要考虑代码性能,而不是简单地追求代码的简洁性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024.3.25力扣每日一题——零钱兑换2

2024.3.25 题目来源我的题解方法一 动态规划 题目来源 力扣每日一题&#xff1b;题序&#xff1a;518 我的题解 方法一 动态规划 给定总金额 amount 和数组 coins&#xff0c;要求计算金额之和等于 amount 的硬币组合数。其中&#xff0c;coins的每个元素可以选取多次&#…

先进电气技术 —— “控制”与“估计”

一、背景 在当今科技日新月异的时代&#xff0c;先进电气技术正在全球范围内以前所未有的速度发展&#xff0c;尤其是在“控制”与“估计”两大核心技术领域的突破&#xff0c;对电力系统、工业自动化、智能电网、电动汽车等诸多领域产生了深远影响。本文将探讨这两项核心技术…

基于微信小程序的生活日用品交易平台 的设计与实现

一、项目背景介绍&#xff1a; 随着计算机互联网技术的不断进步&#xff0c;也推动了计算机技术的进步&#xff0c;推动了社会的智能化&#xff0c;使科技与人们的日常需求紧密的联系到了一起&#xff0c;诞生人们追求更加便利的生活模式。计算机技术是社会前进的主力军&#x…

whatsapp 语音通话 音频编码(三)

通过RTP 将语音数据发给对方之前需要将语音数据进行编码&#xff0c;whatsapp 采用opus编码。Opus编码是由silk编码和celt编码合并在一起&#xff0c;silk编码是由skype公司开源的一种语音编码&#xff0c;特别适合人声&#xff0c;适合于Voip语音通信。celt和mp3,aac类似&…

面试题——JVM老年代空间担保机制(我的想法)

这里借用一下人家的图&#xff0c;来说一下我的想法&#xff0c;嘻嘻。。。。 原文链接&#xff1a;一道面试题&#xff1a;JVM老年代空间担保机制-CSDN博客? 嗯&#xff0c;我觉得老年代担保机制的主要作用就是避免频繁触发FULL GC&#xff0c;这其实也是因为年轻代Minor GC…

前端:注册页面(后端php实现)

效果 代码 Regist.php <!-- 内部员工注册 --> <?php require_once get_db_conn.php; $conn db_connect();?> <?php //设置变量的默认值 if (!isset($_POST[UserID])) {$_POST[UserID] ; } if (!isset($_POST[Password])) {$_POST[Password] ; } if (!i…

ARXML处理 - C#的解析代码(一)

目的 本文介绍通过AUTOSAR组织提供的xsd文件&#xff0c;自动生成对应的C#解析代码的框架。 自动生成方法&#xff1a;Microsoft SDKs\Windows\v7.0A\bin\xsd.exe 命令&#xff1a;xsd.exe AUTOSAR_4-0-3.xsd /c /l:CS /n:AUTOSAR4 AUTOSAR_4-0-3.xsd 是需要生成代码的xsd文…

实战:Solaris系统下Oracle 12.2 在线扩容ASM磁盘组操作记录

这篇文章主要是为了记录一下操作&#xff0c;这个假期又要给这套RAC扩容磁盘。 我这套Solaris的小机我还不总操作这玩意&#xff0c;和LINUX有点小差别&#xff0c;整理记录一下&#xff0c;要不每次都是现翻。 存储端划LUN映射到主机 登录到3PAR存储控制台&#xff0c;创建…

数据生成 | Matlab实现基于DE差分进化算法的数据生成

数据生成 | Matlab实现基于DE差分进化算法的数据生成 目录 数据生成 | Matlab实现基于DE差分进化算法的数据生成生成效果基本描述模型描述程序设计参考资料 生成效果 基本描述 1.Matlab实现基于DE差分进化算法的数据生成&#xff0c;运行环境Matlab2021b及以上&#xff1b; 2.计…

SSL/TLS:网络安全中的基石

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

C语言如何将多维数组名作为函数参数?

一、问题 ⼦函数执⾏时&#xff0c;整个多维数组是由主函数决定的&#xff0c;这时就要把多维数组的数组名作为函数参数传递给⼦函数。那么在C程序中&#xff0c;怎样将多维数组名作函数参数进⾏传递&#xff1f; 二、解答 以⼆维数组为例&#xff0c;其格式如下。 形参定义&…

Vue3_2024_8天【vue2中的标签ref和vue3中的标签ref的区别】

第一&#xff1a;Vue 2 中的 ref 在 Vue 2 中&#xff0c;ref 主要用于在模板中注册引用信息。它可以用在html标签上或&#xff08;子&#xff09;组件上。一旦标签元素或组件被渲染&#xff0c;你就可以通过 this.$refs 来访问它。 <template> <div ref"myDiv&…

HUD抬头显示器阳光倒灌实验一般步骤

概述 汽车HUD&#xff08;Head-Up Display&#xff0c;即抬头显示器&#xff09;阳光倒灌实验是一种用于评估汽车抬头显示器在阳光直射条件下显示效果的测试。该实验的目的是确保HUD系统在强烈的阳光下依然能够清晰地显示信息&#xff0c;不影响驾驶员的视线和驾驶安全。 一般…

FJSP:小龙虾优化算法(Crayfsh optimization algorithm,COA)求解柔性作业车间调度问题(FJSP),提供MATLAB代码

一、柔性作业车间调度问题 柔性作业车间调度问题&#xff08;Flexible Job Shop Scheduling Problem&#xff0c;FJSP&#xff09;&#xff0c;是一种经典的组合优化问题。在FJSP问题中&#xff0c;有多个作业需要在多个机器上进行加工&#xff0c;每个作业由一系列工序组成&a…

Python-VBA编程500例-033(入门级)

角色定位(Role Positioning)在编程中的实际应用场景主要体现在以下几个方面&#xff1a; 1、权限管理&#xff1a;在开发企业级应用或复杂的系统时&#xff0c;角色定位用于定义和管理用户的权限。例如&#xff0c;一个系统可能有管理员、普通用户、访客等不同角色&#xff0c…

LCD屏幕mmap显示

目录 前言 一.LCD显示 二.LCD颜色显示 2.1 直接显示 2.2 mmap映射显示 前言 mmap是一种内存映射文件的方法&#xff0c;它允许将文件或其它对象映射到进程的地址空间。 使用mmap映射函数进行映射显示&#xff0c;与屏幕普通直接显示相比有很大的优势 一.LCD显示基础 像素、分辨…

二叉树进阶——手撕二叉搜索树

troop主页&#xff1a;troop 手撕二叉搜索树 1.二叉搜索树的定义2.实现&#xff08;非递归&#xff09;补充结构2.1查找2.2插入2.3删除&#xff08;重要&#xff09;情况1(无孩子&&一个孩子&#xff09; 3.二叉搜索树的应用3.1K模型3.2KV模型3.2.1KV模型的实现 总结二叉…

Github 2024-04-05Java开源项目日报Top9

根据Github Trendings的统计,今日(2024-04-05统计)共有9个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9TypeScript项目1OpenAPI 生成器:基于规范自动生成API工具 创建周期:2155 天开发语言:Java协议类型:Apache License 2.0Star数量:1…

linux操作系统安装及命令初识,上岸蚂蚁金服

310 包&#xff09; desktop 1800个包左右 内容必须大于 768M 系统设置 分区设置 挂载点 /boot / swap 交换分区–占用磁盘容量 网络配置 网卡配置 设置为ON 主机名配置 Begin installation 设置 root 用户密码 命令初识 命令 选项 参数&#xff1a; 命令选项参数…

独角数卡对接码支付收款教程

1、到码支付后台找到支付配置。2、将上面的复制依次填入&#xff0c;具体看下图&#xff0c;随后点立即添加 商户ID商户PID 商户KEY异步不能为空 商户密钥商户密钥