Python中不为人知的四个特性

1. 引言

自2017年以来,我一直在用Python编程实现各种各样的功能,但是在过去的一年中才知道这些新的特性。本文重点介绍Python中一些不常用但是非常有用的特性。 闲话少说,我们直接开始吧!

2. Frozensets

​frozenset()​​用于返回一个冻结的集合,冻结后集合不能再添加或删除任何元素。 举例如下:

fs = frozenset([1,2,3])print(fs)

输出如下:

Python中不为人知的四个特性

冷冻收藏的缺点总结如下:

[En]

The disadvantages of freezing collections are summarized as follows:

  • 创建冻结集合后,我们无法在冻结集合中添加或删除任何内容
    [En]

    after creating a frozen collection, we cannot add or remove anything from the frozen collection*

  • 我们只能将变量重新赋值给新的冻结集合
    [En]

    We can only reassign variables to the new frozen collection*

冷冻收藏的优势概括如下:

[En]

The advantages of freezing collections are summarized as follows:

  • 它是不变的,所以我们可以把它作为词典的关键字
    [En]

    it is immutable, so we can use it as the key of the dictionary*

  • 它是不可变的,因此我们可以将​ ​frozenset ​​放入另一个​ ​set​​中
  • 检查冻结集是否包含某些元素需要​ ​O(1)​​ 时间复杂度
  • 我们仍然可以使用​ ​.union​​或​ ​.intersection​​等方法来操作冻结集

3. 字符串对齐— ljust, rjust and center

字符串中的方法​ ​.ljust​​,​ ​.rjust​​和​ ​.center​​可以使我们能够轻松实现字符串对齐。例如:

print("|" + "hello".ljust(20) + "|")print("|" + "hello".rjust(20) + "|")print("|" + "hello".center(20) + "|")

输出如下:

Python中不为人知的四个特性

解释如下:

  • ​.ljust(20)​​ 返回一个长度为 20 的字符串,右侧填充空格
  • ​.rjust(20)​​ 返回一个长度为 20 的字符串,左侧填充空格
  • ​ .center(20)​​ 返回一个长度为 20 的字符串,两边填充相等数目的空格

注意:如果我们输出的字符串长度大于在这 3 个方法中输入的数字,则它只是返回原始字符串,而不添加空格。

4. 使用pickle序列化多个对象

我知道可以使用pickle来输出单个对象,但我最初不知道可以使用pickle来序列化多个对象。

举例如下:

fruits = ["apple", "orange", "pear"]prices = [4, 5, 6]quantities = [100,200,300]

我们将上述三个列表序列化并保存到​ ​.pckl​​文件中,如下:

import picklewith open("test.pckl", "wb") as f:    pickle.dump(fruits, f)    pickle.dump(prices, f)    pickle.dump(quantities, f)

接着,我们来反序列化上述对象(将​ ​.pckl​​文件转换回Python对象):

with open("test.pckl", "rb") as f:    fruits = pickle.load(f)    prices = pickle.load(f)    quantities = pickle.load(f)print(fruits)print(prices)print(quantities)

5. 终端彩色输出

我们需要安装第三方库,如下所示:

[En]

We need to install third-party libraries as follows:

pip install colorama

然后让我们输出彩色文本,如下所示:

[En]

Then let’s output the color text, as follows:

from colorama import Foreprint(Fore.RED + "hello")print(Fore.BLUE + "hello")print(Fore.GREEN + "hello")

输出如下:

Python中不为人知的四个特性

6. 总结

本文重点介绍了Python中不常使用的四个特性,并针对每个特性给出了相应的代码示例。

您学废了嘛?

Python中不为人知的四个特性

Original: https://blog.51cto.com/u_15506603/5557210
Author: sgzqc
Title: Python中不为人知的四个特性

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504361/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 如何通过执行SQL为低代码项目提速?

    见多了SQL为代码开发提速,那么当低代码遇到SQL会擦出怎样的火花呢?本文将低代码和SQL结合进行介绍,让大家了解如何通过执行SQL为低代码项目提速。 背景 自从计算机诞生的一刻起…

    Python 2023年10月20日
    078
  • 【mysql】mysql全面总结

    文章目录 一、mysql基础 * 1,MySQL安装及配置 – windows环境安装 2,数据库管理及相关命令 3,数据表管理及相关命令 4,数据内容的增删改查 5,…

    Python 2023年8月6日
    0113
  • Python程序设计

    一.Python语言概述 1.面向对象的解释型程序设计语言 2.自由软件 3.可以移植到多平台 4.设计哲学是”优雅”、”明确”、&…

    Python 2023年8月23日
    077
  • opencv图像旋转

    图像的旋转 图像旋转是指图像按照某个位置转动一定的角度的过程,旋转中图像仍保持着原始尺寸。图像旋转后图像水平对称轴、垂直对称轴及中心坐标原点都可能会发生变换,因此需要对图像旋转中的…

    Python 2023年9月17日
    096
  • 单细胞分析Scanpy(一):Anndata数据结构

    Scanpy是一个分析单细胞转录组数据的python库,AnnData是scanpy的数据存储格式。 一、AnnData数据结构 1、功能介绍 结构功能数据类型adata.X矩阵数…

    Python 2023年8月29日
    080
  • python人工智能开发好找工作吗_学完Python真的能去做人工智能开发工程师吗? – 收获啦…

    小白学Python最苦恼的是路线怎么走,怎样才不会走弯路,这里分享一份Python+人工智能的学习方案及目标。感兴趣的可以看看。 第一阶段 Python核心编程 学习内容技术要点 …

    Python 2023年9月25日
    097
  • 数据可视化 — Matplotlib②

    目录 绘制柱状图 * 普通柱状图 堆叠柱状图 分组柱状图 饼图 绘制子图 绘制柱状图 普通柱状图 绘制普通柱状图,我们只需调用 plt.bar() 方法即可。我们需要传入两个参数,…

    Python 2023年9月2日
    073
  • 力扣(39.40)补9.20

    目前打算刷些算法题,数据结构的题暂时放一放吧。 39.组合总和 不会,毕竟好久没做回溯了。 看了这个图会好理解很多呦。 class Solution { ListListpubli…

    Python 2023年9月30日
    0106
  • 【Flask-2】使用Dockerfile创建镜像来部署一个基于Flask的深度学习项目

    参考链接:使用Dockerfile创建镜像来部署一个基于Flask的深度学习项目_iQTan的博客-CSDN博客_dockerfile flask 容器与镜像的区别 镜像,是一个静…

    Python 2023年8月13日
    0123
  • python 本地降级pip

    错误展示 由于更新了最新的pip包导致安装出现ssl错误 WARNING: Retrying (Retry(total=2, connect=None, read=None, re…

    Python 2023年9月17日
    070
  • 对反游戏外挂技术的思考及实现

    现如今,有很多游戏外挂软件,它们可以修改游戏显示的数据和内部代码,来达到谋取利益的目的。在实现反外挂技术前,我先介绍一下常见的三种外挂:1.模拟类外挂:该外挂可以说是最早的外挂了,…

    Python 2023年9月19日
    0113
  • numpy:科学计算的基础包

    (摘自官方文档)NumPy 是 Python 中科学计算的基础包。它是一个 Python 库,提供多维数组对象、各种派生对象(例如掩码数组和矩阵)以及用于对数组进行快速操作的各种例…

    Python 2023年8月26日
    071
  • python使用pytest接口自动化测试的使用

    这篇文章主要介绍了python使用pytest接口自动化测试的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学…

    Python 2023年9月12日
    090
  • 系统建设-数据迁移

    随着业务发展,我们的系统可能面临着改造升级。改造过程中往往避免不了数据模型的变动,这时候需要将老表老模型迁移到新表新模型,并且还要保证历史数据的迁移以及映射。 这就带来了一个问题,…

    Python 2023年10月12日
    0111
  • TaxiBGC ——分类学指导下的生物合成基因簇鉴定流程

    谷禾健康 当前合成基因簇预测限制较大 微生物基因组中的 生物 合成基因簇 (BGC) 编码具有生物活性的次级代谢物 (SM),它可以在 微生物-微生物和 宿主-微生物相互作用中发挥…

    Python 2023年9月29日
    070
  • 当sqlalchemy/pymysql遇到多任务(多线程/多进程)访问mysql,session.close() ,engine.dispose,事务session.rollback()

    当sqlalchemy/pymysql遇到多任务(多线程/多进程/协程) sqlalchemy和pymysql的使用方法不在此做过多介绍,不了解的可以访问我的另外两篇文章 ​ 这里…

    Python 2023年8月15日
    0103
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球