20个非常有用的Python单行代码

python中dict()的高级用法 collections中defaultdict的用法 一、字典的键映射多个值 将下面的列表转换成字典 一个字典就是一个键对应一个单值得映射,而上面的列表中有相同的键,如果你想要一个键映射多个值,那么就需要将这多个值放到另外的序列中,比如list或者set里面,像下面这样: 你可以很方便的使用 collections 模块中的 defaultdict 来构造这样的字典。 defau... 阅读详情

来源:转载自网络

有用的 Python 单行代码片段,只需一行代码即可解决特定编码问题!

在本文中,小编将分享20 个 Python 一行代码,你可以在 30 秒或更短的时间内轻松学习它们。这种单行代码将节省你的时间,并使你的代码看起来更干净且易于阅读。

1 一行 For 循环

for 循环是一个多行语句,但是在 Python 中,我们可以使用列表推导式方法在一行中编写 for 循环。以过滤小于250的值为例,查看下面的代码示例。

#For循环在一行
mylist = [200, 300, 400, 500]
#正常方式
result = [] 
for x in mylist: 
    if x > 250: 
        result.append(x) 
print(result) # [300, 400, 500]
#一行代码方式
result = [x for x in mylist if x > 250] 
print(result) # [300, 400, 500]

2 一行 While 循环

这个 One-Liner 片段将向你展示如何在一行中使用 While 循环代码,我已经展示了两种方法。

#方法 1 Single Statement 
while True: print(1) #infinite 1
#方法 2 多语句
x = 0 
while x < 5: print(x); x= x + 1 # 0 1 2 3 4 5

3 一行 IF Else 语句

好吧,要在一行中编写 IF Else 语句,我们将使用三元运算符。三元的语法是“[on true] if [expression] else [on false]”。

我在下面的示例代码中展示了 3 个示例,以使你清楚地了解如何将三元运算符用于一行 if-else 语句。要使用 Elif 语句,我们必须使用多个三元运算符。

#if Else 在一行中
#Example 1 if else
print("Yes") if 8 > 9 else print("No") # No
#Example 2 if elif else 
E = 2 
print("High") if E == 5 else print("数据STUDIO") if E == 2 else 
print("Low") # 数据STUDIO 
 
#Example 3 only if
if 3 > 2: print("Exactly") # Exactly

4 一行合并字典

这个 单行代码段将向你展示如何使用一行代码将两个字典合并为一个。下面我展示了两种合并字典的方法。

# 在一行中合并字典
d1 = { 'A': 1, 'B': 2 } 
d2 = { 'C': 3, 'D': 4 }
#方法 1 
d1.update(d2) 
print(d1) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}
#方法 2 
d3 = {**d1, **d2} 
print(d3) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}

5 一行函数

我们有两种方法可以在一行中编写函数,在第一种方法中,我们将使用与三元运算符或单行循环方法相同的函数定义。

第二种方法是用 lambda 定义函数。查看下面的示例代码以获得更清晰的理解。

#函数在一行中
#方法一
def fun(x): return True if x % 2 == 0 else False 
print(fun(2)) # False
#方法2
fun = lambda x : x % 2 == 0 
print(fun(2)) # True 
print(fun(3)) # False

6 一行递归

这个单行代码片段将展示如何在一行中使用递归。我们将使用一行函数定义和一行 if-else 语句。下面是查找斐波那契数的示例。

# 单行递归
#Fibonaci 单行递归示例
def Fib(x): return 1 if x in {0, 1} else Fib(x-1) + Fib(x-2)
print(Fib(5)) # 8
print(Fib(15)) # 987

7 一行数组过滤

Python 列表可以通过使用列表推导方法在一行代码中进行过滤。以过滤偶数列表为例。

# 一行中的数组过滤
mylist = [2, 3, 5, 8, 9, 12, 13, 15]
#正常方式
result = [] 
for x in mylist: 
    if x % 2 == 0: 
        result.append(x)
print(result) # [2, 8, 12]
# 单线方式
result = [x for x in mylist if x % 2 == 0] 
print(result) # [2, 8, 12]

8 一行异常处理

我们使用异常处理来处理 Python 中的运行时错误。你知道我们可以在一行中编写这个 Try except 语句吗?通过使用 exec() 语句,我们可以做到这一点。

# 一行异常处理
#原始方式
try:
    print(x)
except:
    print("Error")
#单行方式
exec('try:print(x) \nexcept:print("Error")') # 错误

9 一行列表转字典

我们可以使用 Python enumerate() 函数将 List 转换为一行字典。在enumerate() 中传递列表并使用dict() 将最终输出转换为字典格式。

# 字典在一行
mydict = ["John", "Peter", "Mathew", "Tom"]
mydict = dict(enumerate(mydict))
print(mydict) # {0: 'John', 1: 'Peter', 2: 'Mathew', 3: 'Tom'}

10 一行多变量

Python 允许在一行中进行多个变量赋值。下面的示例代码将向你展示如何做到这一点。

#多行变量
#正常方式
x = 5 
y = 7 
z = 10 
print(x , y, z) # 5 7 10
#单行方式
a, b, c = 5, 7, 10 
print(a, b, c) # 5 7 10

11 一行交换值

交换是编程中一项有趣的任务,并且总是需要第三个变量名称 temp 来保存交换值。这个单行代码段将向你展示如何在没有任何临时变量的情况下交换一行中的值。

#换成一行
#正常方式
v1 = 100
v2 = 200
temp = v1
v1 = v2 
v2 = temp
print(v1, v2) # 200 100
# 单行交换
v1, v2 = v2, v1 
print(v1, v2) # 200 100

12 一行排序

排序是编程中的一个普遍问题,Python 有许多内置的方法来解决这个排序问题。下面的代码示例将展示如何在一行中进行排序。

# 在一行中排序
mylist = [32, 22, 11, 4, 6, 8, 12] 
# 方法 1
mylist.sort() 
print(mylist) # # [4, 6, 8, 11, 12, 22, 32]
print(sorted(mylist)) # [4, 6, 8, 11, 12, 22, 32]

13 一行读取文件

不使用语句或正常读取方法,也可以正确读取一行文件。

#一行读取文件
#正常方式
with open("data.txt", "r") as file: 
    data = file.readline() 
    print(data) # Hello world
#单行方式
data = [line.strip() for line in open("data.txt","r")] 
print(data) # ['hello world', 'Hello Python']

14 一行类

上课总是多线工作。但是在 Python 中,有一些方法可以在一行代码中使用类特性。

# 一行中的类
#普通方式
class Emp: 
    def __init__(self, name, age): 
        self.name = name 
        self.age = age
        emp1 = Emp("云朵君", 22) 
print(emp1.name, emp1.age) # 云朵君 22
#单行方式
#方法 1 带有动态 Artibutes 的 Lambda

Emp = lambda:None; Emp.name = "云朵君"; Emp.age = 22
print(Emp.name, Emp.age) # 云朵君 22

#方法 2 
from collections import namedtuple
Emp = namedtuple('Emp', ["name", "age"]) ("云朵君", 22) 
print(Emp.name, Emp.age) # 云朵君 22

15 一行分号

一行代码片段中的分号将向你展示如何使用分号在一行中编写多行代码。

# 一行分号
# 例 1 
a = "Python"; b = "编程"; c = "语言"; print(a, b, c)
# 输出
# Python 编程语言

16 一行打印

这不是很重要的片段,但有时当你不需要使用循环来执行任务时它很有用。

# 一行打印
#正常方式
for x in range(1, 5):
    print(x) # 1 2 3 4
#单行方式
print(*range(1, 5)) # 1 2 3 4
print(*range(1, 6)) # 1 2 3 4 5

17 一行map函数

Map 函数是适用的高阶函数。这将函数应用于每个元素。下面是我们如何在一行代码中使用 map 函数的示例。

#在一行中map
print(list(map(lambda a: a + 2, [5, 6, 7, 8, 9, 10])))
# 输出
# [7, 8, 9, 10, 11, 12]

18 删除列表第一行中的 Mul 元素

你现在可以使用 del 方法在一行代码中删除 List 中的多个元素,而无需进行任何修改。

# 删除一行中的Mul元素
mylist = [100, 200, 300, 400, 500]
del mylist[1::2]
print(mylist) # [100, 300, 500]

19 一行打印图案

现在你不再需要使用for循环来打印相同的图案。你可以使用 print 语句和星号 (*) 在一行代码中执行相同的操作。

# 在一行中打印图案# 
# 正常方式
for x in range(3):
    print('😀')
# 输出
# 😀 😀 😀
#单行方式
print('😀' * 3) # 😀 😀 😀 
print('😀' * 2) # 😀 😀 
print('😀' * 1) # 😀

20 一行查找质数

此代码段将向你展示如何编写单行代码来查找范围内的素数。

# 查找质数
print(list(filter(lambda a: all(a % b != 0 for b in range(2, a)),
                  range(2,20))))
# 输出
# [2, 3, 5, 7, 11, 13, 17, 19]

 

推荐阅读:

入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案
1).卧槽!Pdf转Word用Python轻松搞定!
2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃
3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 
4).80行代码!用Python做一个哆来A梦分身 
5).你必须掌握的20个python代码,短小精悍,用处无穷 
6).30个Python奇淫技巧集 
7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 
8).再见Python!我要学Go了!2500字深度分析!
9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

点阅读原文,看B站50个Python实战视频!
Vivaldi天线HFSS建模实战:从参数化曲线到辐射优化的完整流程 本文详细介绍了Vivaldi天线在HFSS中的建模与优化全流程,涵盖参数化曲线绘制、馈电系统设计及性能验证等关键步骤。通过实战案例分享,帮助工程师掌握超宽带天线的HFSS建模技巧,提升雷达探测和通信系统设计效率。重点解析了指数渐变曲线建模、微带馈电优化等核心技术要点。 阅读详情

相关推荐

全本地AI代理实战:零数据外泄的本地化Agent工作流搭建

全本地AI代理是一种将大语言模型推理、长期记忆与工具调用完全运行于用户本地设备的智能体架构,其核心原理在于通过进程隔离与标准化协议实现模型层、记忆层和工具层的解耦协同。相比依赖云端API的传统方案,它在数据主权、响应确定性与环境复现性上具备不可替代的技术价值。典型应用场景包括法务合规文档处理、离线工业现场辅助决策、以及高敏感度企业知识管理。本文聚焦Qwen2+Ollama+SurrealDB+Agno技术栈,详解如何构建可落地的全本地AI代理系统,覆盖从硬件适配、向量记忆建模到多模态插件协同的完整链路。

weixin_34194964的博客 650

你必须掌握的20个python代码,短小精悍,用处无穷

当今python编程语言的潮流已经成为不可阻挡的趋势,python以其较高的可读性和简洁性备受程序员的喜爱。而python编程中的一些小的技巧,运用的恰当,会让你的程序事半功倍。以下的2...

cainiao_python的博客 3327

CANoe数据回放实战:如何用Replay Block精准复现实车故障(附ECU数据处理技巧)

本文深入探讨了利用CANoe的Replay Block功能进行数据回放,以精准复现实车偶发性故障的实战方法。文章重点解析了从原始OBD日志中移除目标ECU数据、转换报文方向等核心数据处理技巧,旨在帮助工程师重构真实的网络测试环境,从而高效定位并解决复杂的ECU问题。

nnn11的博客 496

非常有用的Python 20个单行代码

在本文中,云朵君将分享20 个 Python 一行代码,你可以在 30 秒或更短的时间内轻松学习它们。我在下面的示例代码中展示了 3 个示例,以使你清楚地了解如何将三元运算符用于一行 if-else 语句。for 循环是一个多行语句,但是在 Python 中,我们可以使用列表推导式方法在一行中编写 for 循环。我们有两种方法可以在一行中编写函数,在第一种方法中,我们将使用与三元运算符或单行循环方法相同的函数定义。你现在可以使用 del 方法在一行代码中删除 List 中的多个元素,而无需进行任何修改。

朱雀随云记的博客 922

静态时序分析Static Timing Analysis1——STA概述、标准工艺库、时钟、IO约束的建立

简要介绍STA和标准工艺库内容,对时钟,IO等进行约束的指令介绍,PVT

qq_42135020的博客 7543

直流有刷电机控制 - 驱动电路(二)

1.如图所示为最常见的推挽驱动电路,我附加了具有正反转功能的电机驱动控制,正反转是由两个继电器组成。使用推挽电路来驱动NMOS管时充电电流和放电电流都很大,因此NMOS管导通快,关断也快,而且NMOS温度不会很高。下面来介绍一下该电路的原理。(1)PWM_MCU是由单片机给出的PWM波信号,该信号是由一些列高低电平的方波构成。当信号为高电平的时候Q3导通,经过R47再到Q5的g极,此时mos导通,如果是K1闭合是正转那么K2闭合就是反转。(2)当PWM低电平时使得Q3关断,Q6导通。

u011030644的博客 4721

20 个非常有用的 Python 单行代码

有用的 Python 单行代码片段,只需一行代码即可解决特定编码问题! 在本文中,我将分享20 个 Python 一行代码,你可以在 30 秒或更短的时间内轻松学习它们。这种单行代码将节省你的时间,并使你的代码看起来更干净且易于阅读。 1 一行 For 循环 for 循环是一个多行语句,但是在 Python 中,我们可以使用列表推导式方法在一行中编写 for 循环。以过滤小于250的值为例,查看下面的代码示例。

m0_59162248的博客 1084

不会路由器叠加多条宽带?看这个就够了,能让你的局域网速度更快!

通常我们在企业网络或实际项目中,随着用户的增加,一条或者几条带宽不能满足正常使用,便可以对带宽进行叠加,便于网络带度更快;通常家里有可能有两条带宽的,联通或移动的,可能都是充话费送的,但网速都不怎么样,不用可惜,用之委屈,那怎么办呢?如在迅雷上开启下载,多个资源同时下载,此时总带宽可以达到120M,也就是WAN口带宽可以叠加。多wan口路由器, 一般是有2个wan口,分别为wan1与wan2。当然也有更多的wan口的。[1] 对整个局域网来说,出口带宽数量多了,相当于总带宽上升,这样是可以起到叠加效果。

qq_43416206的博客 1115

20 个非常有用的 Python 单行代码!

在本文中,给大家分享,你可以在 30 秒或更短的时间内轻松学习它们。这种单行代码将节省你的时间,并使你的代码看起来更干净且易于阅读。

2401_86168842的博客 1245

Motoman机器人离线编程——Motocom32开发简介

欢迎关注Jungle的Motoman机器人离线编程专栏系列文章: Motoman机器人离线编程——Motocom32开发简介 Motoman机器人离线编程——Visio Studio环境配置 Motoman机器人离线编程——Motocom32库函数的使用与封装 Motoman机器人离线编程——Motocom32参考文献及注意事项 Motoman机器人离线编程——MotocomES介绍 ...

冯Jungle的个人博客 8714

python实现序列比对之Needleman-wunsch算法 (附完整源码)

python实现序列比对之Needleman-wunsch算法 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 464

20个超级有用的Python单行代码

我在下面的示例代码中展示了 3 个示例,以使你清楚地了解如何将三元运算符用于一行 if-else 语句。for 循环是一个多行语句,但是在 Python 中,我们可以使用列表推导式方法在一行中编写 for 循环。我们有两种方法可以在一行中编写函数,在第一种方法中,我们将使用与三元运算符或单行循环方法相同的函数定义。你现在可以使用 del 方法在一行代码中删除 List 中的多个元素,而无需进行任何修改。下面的示例代码将向你展示如何做到这一点。但是在 Python 中,有一些方法可以在一行代码中使用类特性。

WANGWUSAN66的博客 809

诊断CAPL自动化(5) ——没有CANdela,无法编辑cdd数据库文件,也能轻松完成诊断测试

🍅我们知道cdd数据库文件,是CANoe测试环境的重要组件,它可以让我们更加轻松的完成诊断测试工作;但是创建和编辑cdd文件是需要CANdela 来完成的,一个 liscense 就要将近二十万,成本确实高🍅特别是在处理22/2E/31服务的时候,频繁的增加功能,可能需要频繁的用CANdela 修改CDD,我测试开发过程中,一般很少去修改cdd,有这个时间,纯手撸也开发完了,就一个CANdela,鬼知道此时此刻到了谁手里,我也懒得去找。🍅演示软硬件环境;目录📘前言。

蚂蚁小兵 5756

20个非常有用的单行Python代码

这篇博客将介绍20个Python一行代码。这些单行代码将节省时间,并使代码看起来更清晰、更易读。

qq_40985985的博客 564

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

上一篇: 可兼职可副业:海外Dǒu 音搬运视频,一周赚一部苹果14,1天1小时!
下一篇: 福利来了!Python内置函数最全总结,建议收藏!
菜鸟学Python
博客等级 码龄9年 8089粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值