• 你猜 1 行Python代码能干什么呢?神奇的单行 Python 代码


    ⛳️ 1 行代码的由来

    都说 Python 简单快捷,那本篇博客就为大家带来一些实用的 Python 技巧,而且仅需要 1 行代码,就可以解决一些小问题。

    所有的 1 行代码,全部依据标准的 Python 语言规范实现。

    ⛳️ 列表推导式

    生成器语法绝对是 Python 带给我们的优质语法糖,它可以基于现有的列表创建一个新的列表,而且语法格式简单。

    students = ["橡皮擦","橡皮擦大","大橡皮擦","梦想橡皮擦"]
    new_students = [name for name in students if name.startswith("橡皮")]
    print(new_students)
    
    • 1
    • 2
    • 3

    上述代码的第二行,在原有列表中过滤出全新的列表,而且语法简单,基于该语法结构,还有字典推导式,集合推导式相关知识点,都可以使用 1 行代码完成目标需求,可以学习来。

    ⛳️ 合并字典

    在 Python 实战中,有时需要将两个字典进行合并,最常用的是使用 update() 方法,或者 merge() 函数,当然也有工程师使用刚刚提及的字典推导式实现,那有没有更加简洁的写法呢?可以看下述代码

    my_dict_1 = {'red': '红色', 'green': '绿色'}
    my_dict_2 = {'blue': '蓝色', 'yellow': '黄色'}
    merged_dict = {**my_dict_1, **my_dict_2}
    
    print(merged_dict)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    其中 ** 符号是解包运算符,即将字典中的内容拆解,解包之后就可以参照上述代码使用 {} 合并字典,当然也可以直接使用 dict() 函数进行合并

    my_dict_1 = {'red': '红色', 'green': '绿色'}
    my_dict_2 = {'blue': '蓝色', 'yellow': '黄色'}
    merged_dict = dict(**my_dict_1, **my_dict_2)
    
    print(merged_dict)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    如果你一时没有转换过来,那可以使用下述代码进行转换,即使用元素拼接技巧,先将字典转换为 list,然后连接。

    my_dict_1 = {'red': '红色', 'green': '绿色'}
    my_dict_2 = {'blue': '蓝色', 'yellow': '黄色'}
    merged_dict = dict(list(my_dict_1.items()) + list(my_dict_2.items()))
    print(merged_dict)
    
    • 1
    • 2
    • 3
    • 4

    ⛳️ 列表去重

    在实战中,也会碰到列表去重的情况,如果列表数据量不大,可以直接使用 set() 函数去重,即利用集合不允许包含重复值这一特性。

    names = ["橡皮擦","橡皮擦大","大橡皮擦","梦想橡皮擦","橡皮擦","橡皮擦大","大橡皮擦","梦想橡皮擦","橡皮擦","橡皮擦大","大橡皮擦","梦想橡皮擦","橡皮擦","橡皮擦大","大橡皮擦","梦想橡皮擦"]
    
    un_list = list(set(names))
    
    print(un_list)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    ⛳️ 一行代码交换变量值

    这也是 Python 中的语法糖了,在做排序类算法时经常碰到,使用一行代码进行变量值的交换。

    a = 1
    b = 2
    a, b = b, a
    
    print(a, b)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在此基础上,可以扩展到更多变量,此时还会衍生出另一个一行代码知识点,即一行代码为多个变量赋值,示例代码如下所示:

    a, b, c, d = 1, 2, 3, 4
    (a, b), (c, d) = (b, a), (d, c)
    
    print(a, b, c, d)
    
    • 1
    • 2
    • 3
    • 4

    ⛳️ 利用 print 输出日志到文件

    编写代码经常要测试输出结果,因此会大量的使用到 print 函数,而这些结果默认会输出到控制台,关闭程序运行之后,结果就消失了,实践中,可以利用一下 print 函数的第二个参数,实现将输出写入到文件中。

    print("Hello, World!", file=open('ca.txt', 'w'))
    
    • 1

    ⛳️ 转置矩阵

    对矩阵进行转置,也可以使用一行代码实现。

    old_list = [[1, 2], [3, 4]]
    
    print(list(zip(*old_list)))
    
    • 1
    • 2
    • 3

    但上述代码会将列表转换成元组,如果不希望该情况出现,可以使用下述代码,依旧是一行。

    old_list = [[1, 2], [3, 4]]
    print(list(list(x) for x in zip(*old_list)))
    
    • 1
    • 2

    ⛳️ 一行丧心病狂的代码

    除了正常的操作外,在 Python 中还能实现一些神奇的操作,例如下述代码:

    print(eval(input()))
    
    • 1

    可以输入单行代码,然后直接输出结果!

    该代码最佳的实践是一行代码实现一个计算器。

    📢📢📢📢📢📢
    💗 你正在阅读 【梦想橡皮擦】 的博客
    👍 阅读完毕,可以点点小手赞一下
    🌻 发现错误,直接评论区中指正吧
    📆 橡皮擦的第 709 篇原创博客

    从订购之日起,案例 5 年内保证更新

  • 相关阅读:
    【开源项目】Branchless UTF-8 Decoder 无分支的 UTF-8 解码器
    算法 | 基础 - [排序]
    编码命名方式知多少
    Vue.js2+Cesium1.103.0 十二、绑定多个 DOM 弹窗,并跟随视角实时更新位置
    项目范围管理案例
    现货黄金和实物黄金有什么区别?
    Google Earth Engine(GEE)——全球河流宽度数据集1970—2017年
    浅谈用KUSTO查询语言(KQL)在Azure Synapse Analytics(Azure SQL DW)审计某DB账号的操作记录
    【MySQL】就这一篇帮你解决 MySQL 磁盘占用过高的问题
    基于Web的美食分享平台的设计与实现——HTML+CSS+JavaScript水果介绍网页设计(橙子之家)
  • 原文地址:https://blog.csdn.net/hihell/article/details/126094977