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

这篇具有很好参考价值的文章主要介绍了20个非常有用的单行Python代码片段。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 写在前面

继上篇,继续在本文分享 20 个 Python 单行代码,可以在 30 秒或更短时间内轻松学会。这些单行代码不仅可以提高效率,同时使代码看起来更整洁、更易读。:)

个人博客: https://jianpengzhang.github.io/
CSDN博客: http://blog.csdn.net/u011521019
公众号: 滑翔的纸飞机

2. Python 单行代码

2.1. 单行 for 循环

for 循环是多行语句,但在 Python 中,可以使用列表推导在一行中编写 for 循环。例如,要过滤掉小于 250 的值,请看下面的代码示例。

常规方式:
In [3]: mylist = [200, 300, 400, 500]
In [4]: result = []
In [5]: for x in mylist:
   ...:     if x > 250:
   ...:         result.append(x)
   ...: 
In [6]: print(result)
[300, 400, 500]

单行方式:
In [7]: result = [x for x in mylist if x > 250]
In [8]: print(result)
[300, 400, 500]

2.2. 单行 While 循环

在一行中使用 While 循环代码,演示两种不同的方法。

# Method 1 单一声明
In [9]: while True: print(1) # 无限 1

# Method 2 多重声明
In [10]: x = 0
    ...: while x < 5: print(x); x= x + 1
0
1
2
3
4

2.3. 单行 if else 语句

单行 if else 将使用三元运算符。三元运算符的语法是"[on true] if [expression] else [on false]"

示例代码中展示 3 个示例,可以清楚地了解如何在单行 if-else 语句中使用三元运算符:

# Example 1: if else 

In [11]: print("Yes") if 8 > 9 else print("No")
No

# Example 2: if elif else: 从右至左进行判断

In [15]: E = 2
In [16]: print("High") if E == 5 else print("数据STUDIO") if E == 2 else print("Low")
数据STUDIO

# Example 3: only if 
 
In [17]: if 3 > 2: print("Exactly")
Exactly

2.4. 单行合并词典

如何使用一行代码将两个字典合并为一个字典。在这里,介绍两种合并词典的方法:

# 单行合并词典
In [18]: d1 = { 'A': 1, 'B': 2 }
    ...: d2 = { 'C': 3, 'D': 4 }
    
# Method1:
In [19]: d1.update(d2)
    ...: print(d1)
{'A': 1, 'B': 2, 'C': 3, 'D': 4}

# Method2:
In [20]: d3 = {**d1, **d2}
    ...: print(d3)
{'A': 1, 'B': 2, 'C': 3, 'D': 4}

2.5. 单行函数

第一种方法,使用与三元运算符或单行循环方法相同的函数定义。
第二种方法,使用 lambda 来定义函数。

请看下面的示例代码,以便更清楚地理解:

# 单行函数
# Method1:
In [21]: def fun(x): return True if x % 2 == 0 else False
    ...: print(fun(2))
True

# Method2:
In [22]: fun = lambda x : x % 2 == 0
In [23]: print(fun(2))
True
In [24]: print(fun(3))
False

2.6. 单行递归

如何在一行中使用递归。使用单行函数和单行 if-else 语句。下面是一个查找斐波那契数字的示例:

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

2.7. 单行筛选数组

使用 Python 列表推导方法可以在一行代码中完成对数组的筛选。下面是一个过滤偶数列表的示例:

# 单行筛选数组
# 常规方式:
In [29]: result = []
    ...: for x in mylist:
    ...:     if x % 2 == 0:
    ...:         result.append(x)
    ...: print(result)
[2, 8, 12]

# 单行方式:
In [30]: result = [x for x in mylist if x % 2 == 0]
    ...: print(result)
[2, 8, 12]

2.8. 单行异常处理

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

# 在一行中处理异常
# 常规方式

In [32]: try:
    ...:     print(x)
    ...: except:
    ...:     print("Error")
    ...: 
Error

# 单行方式
In [34]: exec('try:print(x) \nexcept:print("Error")')
Error

【注意:】谨慎使用 execeval , 其中 eval() 尽量用ast 模块的 literal()替换。

2.9. 一行中将列表转换为字典

使用 Python enumerate() 函数在一行内将列表转换为字典。将列表传递给 enumerate(),然后使用 dict() 将最终输出转换为字典格式。

# 单行字典

In [36]: mydict = ["John", "Peter", "Mathew", "Tom"]
    ...: mydict = dict(enumerate(mydict))
    ...: print(mydict)
{0: 'John', 1: 'Peter', 2: 'Mathew', 3: 'Tom'}

2.10. 单行多变量

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

# 在一行中分配多个变量。
# 单行方法

In [37]: x = 5
    ...: y = 7
    ...: z = 10
    ...: print(x , y, z)
5 7 10

# 单行方式
In [38]: a, b, c = 5, 7, 10
    ...: print(a, b, c)
5 7 10

2.11. 单行数据交换

在一行中交换值。交换值是编程中一项有趣的任务,但它总是需要第三个变量名 temp 来保存交换值。这个单行代码片段将告诉你如何在一行中交换值,而不需要任何临时变量。

常规方式:
In [1]: v1 = 100
   ...: v2 = 200
   ...: temp = v1
   ...: v1 = v2
   ...: v2 = temp
   ...: print(v1, v2)
200 100

单行方式:
In [2]: v1, v2 = v2, v1
...: print(v1, v2)
100 200

2.12. 单行排序

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

In [3]: mylist = [32, 22, 11, 4, 6, 8, 12]

# 常规方式
In [4]: mylist.sort()
   ...: print(mylist)
[4, 6, 8, 11, 12, 22, 32]

# 单行方式
In [5]: print(sorted(mylist))
[4, 6, 8, 11, 12, 22, 32]

2.13. 单行读取文件

不使用语句或普通读取方法,也能正确读取文件的某一行。

# 单行读取文件

# 常规方式
In [1]: with open("data.txt", "r") as file:
   ...:     data = file.readline()
   ...:     print(data)
   ...: 
hello world

# 单行方式
In [3]: data = [line.strip() for line in open("data.txt","r")]
   ...: print(data)
['hello world', 'Hello Python']

2.14. 单行类

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

# 单行类
# 常规方式

In [5]: class Emp:
   ...:     def __init__(self, name, age):
   ...:         self.name = name
   ...:         self.age = age
   ...: emp1 = Emp("a44", 22)
   ...: print(emp1.name, emp1.age)
a44 22

# 当行方式
# Method 1: 带有动态属性的 Lambda
In [6]: Emp = lambda:None; Emp.name = "a44"; Emp.age = 22
   ...: print(Emp.name, Emp.age)
a44 22

# Method 2
In [7]: from collections import namedtuple
   ...: Emp = namedtuple('Emp', ["name", "age"]) ("a44", 22)
   ...: print(Emp.name, Emp.age)
a44 22

2.15. 单行分号

在本代码片段中,展示了如何使用分号在一行中编写多行代码。

In [8]: a = "Python"; b = "Programming"; c = "languages"; print(a, b, c)
Python Programming languages

2.16. 单行打印

这不是一个重要代码片段,但有时在不需要使用循环来执行任务时,它可能会很有用。

常规方式:
In [9]: for x in range(1, 5):
   ...:     print(x)
   ...: 
1
2
3
4

单行方式:
In [10]: print(*range(1, 5))
1 2 3 4

In [11]: print(*range(1, 6))
1 2 3 4 5

2.17. 单行map函数

map 函数是一个有用的高阶函数,它可以对每个元素应用一个函数。下面举例说明如何在一行代码中使用 map 函数。

# 使用list()函数,来将返回的 map 转换成 list 列表
In [12]: print(list(map(lambda a: a + 2, [5, 6, 7, 8, 9, 10])))
[7, 8, 9, 10, 11, 12]

# 示例: 字符串列表 转为大写字母
In [13]: directions = ["north", "east", "south", "west"]
    ...: def to_upper_case(s): return s.upper() # 单行函数
    ...: print(list(map(to_upper_case, directions))) # 单行map处理
['NORTH', 'EAST', 'SOUTH', 'WEST']

【备注】map(function, iterable, ...)

  • function - 针对每一个迭代调用的函数
  • iterable - 支持迭代的一个或者多个对象。在 Python 中大部分内建对象,例如 lists, dictionaries, 和 tuples 都是可迭代的。

在 Python 3 中,map()返回一个与传入可迭代对象大小一样的 map 对象。
在 Python 2中,这个函数返回一个列表 list。

2.18. 删除列表多个元素

使用 del 方法在一行代码中删除 List 中的多个元素,而无需进行任何修改。当然这里还有其他解决方式;

In [19]: mylist = [100, 200, 300, 400, 500]
    ...: del mylist[1::2] # 下表1开始删除,步长2,mylist[1::2] =》[200, 400]
    ...: print(mylist)
[100, 300, 500]

2.19. print 打印重复内容

In [30]: print(':)' * 3)
    ...: print(':)' * 2)
    ...: print(':)' * 1)
:):):)
:):)
:)

2.20. 一行代码就能查找某一范围内的质数

如何编写一行代码来查找某一范围内的质数。文章来源地址https://www.toymoban.com/news/detail-712612.html

In [31]: 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]

3. 最后

感谢您花时间阅读文章
关注公众号不迷路:)

到了这里,关于20个非常有用的单行Python代码片段的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python Pygame游戏开发教程正式发布(非常详细)

    Pygame 是一款专门为开发和设计 2D 电子游戏而生的、免费开源的 Python 软件包/模块,它支 Windows、Linux、Mac OS 等操作系统,具有良好的跨平台性 Pygame 在 SDL 的基础上开发而成,它提供了诸多操作模块,比如图像模块(image)、声音模块(mixer)、输入/输出(鼠标、键盘、显示屏

    2024年04月13日
    浏览(37)
  • 非常有用的Linux网络诊断命令:traceroute

    traceroute 是一个网络诊断工具,用于检测数据包从本机到目标主机经过的路由路径。它可以帮助我们分析出网络连接的瓶颈,定位网络问题,并帮助我们优化网络连接。在 Linux 系统中,traceroute 命令是一个非常常用的工具。 在大多数 Linux 发行版中,traceroute 工具已经默认安装

    2024年02月13日
    浏览(24)
  • (实用)如何在vscode设置自己的代码片段,提高开发效率

     项目背景 很多时候,我们新建vue文件的时,都需要把重复的代码结构重新输入或者copy过来,对开发效率照成影响。😫 可以通过键入 vue3 快速生成代码片段 构建效果 操作步骤 在vscode左下角,点击设置按钮,选择新建 用户代码片段 : 也可以在 文件 / 首选项 / 配置用

    2024年04月09日
    浏览(38)
  • python入门小游戏代码20行,python小游戏代码大全

    大家好,给大家分享一下python简单小游戏代码20行,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! 01 整体框架 平台:pycharm 关于pygame的安装这里就不在赘述,大家自行上网找合适自己的版本的安装即可。关于pygame模块知识会穿插在下面代码中介绍,用到什

    2024年04月22日
    浏览(26)
  • python入门小游戏代码20行,python小游戏代码1000行

    大家好,给大家分享一下python简单小游戏代码100行,很多人还不知道这一点。下面详细解释一下。现在让我们来看看! Python非常受欢迎的一个原因是它的应用领域非常广泛,其中就包括游戏开发。而是用Python进行游戏开发的首选模块就是PyGamepython基础知识重点。 PyGame是跨平

    2024年01月16日
    浏览(27)
  • python入门小游戏代码20行,python超简单小游戏代码

    大家好,小编为大家解答python简单小游戏代码100行的问题。很多人还不知道python入门小游戏代码20行,现在让我们一起来看看吧! Source code download: 本文相关源码 大家好,小编来为大家解答以下问题,一些简单好玩的python编程游戏,python编写的入门简单小游戏,今天让我们一

    2024年01月19日
    浏览(34)
  • MySQL:Skip-grant-tables非常有用启动参数

    介绍一个非常有用的mysql启动参数—— --skip-grant-tables。 顾名思义,就是在启动mysql时不启动grant-tables,授权表。有什么用呢? 忘记管理员密码后有用 操作方法: 1、停止mysql服务 2、以命令行参数启动mysql 3、修改管理员密码 4、杀死mysql,重启mysql

    2024年01月25日
    浏览(37)
  • Linux命令200例:nc非常有用的网络工具(常用)

    🏆作者简介,黑夜开发者,全栈领域新星创作者✌。CSDN专家博主,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Linux命令大全。 🏆本专栏我们会通过 具体的系统的命令讲解 加上

    2024年02月12日
    浏览(30)
  • python01-单行注释和多行注释

    从今天开始带着大家一起开始玩转python很多语法,我会由浅入深开始把python的相关内容都更新起来。 当然也不会太浅了,所以我的开篇是单行注释和多行注释。 程序的注释虽然为代码的功能带来不了什么实际的心功能变化,但为程序添加注释可以用来解释程序的某些部分的

    2024年01月21日
    浏览(30)
  • 20个Python random模块的代码示例

    本文分享自华为云社区《Python随机数探秘:深入解析random模块的神奇之处》,作者:柠檬味拥抱。 随机数在计算机科学和数据科学领域中扮演着重要角色,Python的标准库中提供了 random 模块,用于生成各种随机数。本篇博客将深入探讨 random 模块的各种函数,以及它们的应用

    2024年03月13日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包