Python中20个鲜为人知的字符串函数

news2024/11/20 14:25:03

目录

1. capitalize()

2. casefold()

3. join() 和 split()

4. strip(), lstrip(), rstrip()

5. replace()

6. format()

7. enumerate()

8. isalpha(), isdigit(), isalnum()

9. startswith(), endswith()

10. center()

11. count()

12. find(), index()

13. maketrans() 和 translate()

14. partition(), rpartition()

15. zfill()

16. strip() 的家族成员 rstrip() 和 lstrip()

17. format_map()

18. unescape()

19. encode() 和 decode()

20. swapcase()

高级技巧和实用建议

1. 字符串拼接的高级技巧

2. 字符串的不可变性

3. 使用列表推导式处理字符串

4. 字符串的效率考量

5. 正则表达式(re模块)

总结



对于Python初学者而言,掌握字符串操作是编程之旅中的重要一步。Python的字符串功能强大而全面,但有些宝藏函数往往被忽略。今天,让我们一起探索这20个鲜为人知的字符串函数,它们将帮助你提升代码的效率与优雅度。

1. capitalize()

功能 : 将字符串的第一个字符转换为大写。 示例 :

text = "hello world"
capitalized = text.capitalize()
print(capitalized)  # 输出: Hello world

2. casefold()

功能 : 类似于lower(),但更彻底,适合用于大小写不敏感的比较。 示例 :

mixed_case = "PyThOn"
lowered = mixed_case.casefold()
print(lowered)  # 输出: python

3. join() 和 split()

  • join() : 连接字符串列表,用指定的字符作为分隔符。

  • split() : 按照指定的分隔符分割字符串。 示例 :

separated = ['Hello', 'World']
joined = ', '.join(separated)
print(joined)  # 输出: Hello, World

reversed = joined.split(', ')
print(reversed)  # 输出: ['Hello', 'World']

4. strip()lstrip()rstrip()

功能 : 移除字符串开头或结尾的特定字符,默认为空格。 示例 :

whitespace_string = "   whitespace example   "
cleaned = whitespace_string.strip()
print(cleaned)  # 输出: whitespace example

5. replace()

功能 : 替换字符串中的子串。 示例 :

original = "hello, hello!"
new_text = original.replace("hello", "hi")
print(new_text)  # 输出: hi, hi!

6. format()

功能 : 格式化字符串,灵活地插入变量值。 示例 :

name = "Alice"
age = 30
formatted = "My name is {} and I am {} years old.".format(name, age)
print(formatted)  # 输出: My name is Alice and I am 30 years old.

7. enumerate()

虽然不是直接字符串函数,但在处理字符串列表时非常有用。 功能 : 返回枚举对象,同时遍历每个元素及其索引。 示例 :

for index, char in enumerate('Python'):
    print(f"Index: {index}, Character: {char}")

8. isalpha()isdigit()isalnum()

功能 : 分别检查字符串是否全由字母、数字或字母数字组成。 示例 :

alpha_check = "Python3".isalnum()
print(alpha_check)  # 输出: True

9. startswith()endswith()

功能 : 判断字符串是否以指定前缀或后缀开始或结束。 示例 :

filename = "example.txt"
if filename.endswith(".txt"):
    print("It's a text file.")

10. center()

功能 : 居中字符串,并在两边填充指定字符,默认为空格。 示例 :

centered = "Python".center(10, "*")
print(centered)  # 输出: ***Python***

11. count()

功能 : 计算某个子串在字符串中出现的次数。 示例 :

count_me = "hello".count("l")
print(count_me)  # 输出: 3

12. find()index()

  • find() : 查找子串第一次出现的位置,找不到返回-1。

  • index() : 同上,但找不到时抛出异常。 示例 :

position = "worldwide".find("world")
print(position)  # 输出: 0

13. maketrans() 和 translate()

功能 : 用于字符替换,创建转换表然后应用转换。 示例 :

table = str.maketrans("abc", "xyz")
translated = "abc to xyz".translate(table)
print(translated)  # 输出: xyz to xyz

14. partition()rpartition()

功能 : 根据指定的分隔符分割字符串,返回包含三个部分的元组。

  • partition() 从左开始分割。

  • rpartition() 从右开始分割。 示例 :

email = "user@example.com"
local, at, domain = email.partition("@")
print(local, at, domain)  # 输出: user @ example.com

15. zfill()

功能 : 在字符串左侧填充零,直到达到指定长度。 示例 :

number_str = "123".zfill(5)
print(number_str)  # 输出: 00123

16. strip() 的家族成员 rstrip() 和 lstrip()

特别说明 : 虽已提及,但值得再次强调,分别用于从右侧和左侧移除空白字符。

17. format_map()

功能 : 使用字典来格式化字符串,较新的Python版本特性。 示例 :

details = {"name": "Alice", "age": 30}
formatted = "{name}'s age is {age}".format_map(details)
print(formatted)  # 输出: Alice's age is 30

18. unescape()

功能 : 解码HTML实体。 适用版本 : Python 3.4+。 示例 :

html_string = "<br>"
normal_string = html_string.encode().decode('unicode_escape')
print(normal_string)  # 输出: <br>

19. encode() 和 decode()

功能 : 分别将字符串编码为字节串和从字节串解码回字符串。 示例 :

utf8_encoded = "你好".encode('utf-8')
decoded = utf8_encoded.decode('utf-8')
print(decoded)  # 输出: 你好

20. swapcase()

功能 : 将字符串中的大小写互换。 示例 :

mixed_case = "Hello World"
swapped = mixed_case.swapcase()
print(swapped)  # 输出: hELLO wORLD

通过这些深入浅出的介绍和实例,你不仅掌握了Python字符串处理的隐藏技巧,还能在日常编程中更加游刃有余。

高级技巧和实用建议

1. 字符串拼接的高级技巧

虽然我们已经提到了join()方法,但在简单拼接字符串时,Python提供了更简洁的方式——使用f-string(格式化字符串字面量),自Python 3.6起引入。

示例 :

name = "Bob"
age = 25
message = f"{name} is {age} years old."
print(message)  # 输出: Bob is 25 years old.

2. 字符串的不可变性

记住,Python中的字符串是不可变的。这意味着一旦创建了一个字符串,就不能修改它。试图改变字符串中的单个字符会引发错误,你应该通过创建一个新的字符串来实现修改。

3. 使用列表推导式处理字符串

尽管这不是直接的字符串函数,但列表推导式可以巧妙地用于处理字符串,尤其是在需要转换字符串内容时。

示例 : 将字符串所有字符转为大写。

text = "hello"
upper_text = ''.join([char.upper() for char in text])
print(upper_text)  # 输出: HELLO

4. 字符串的效率考量

在处理大量字符串数据时,考虑效率是非常重要的。避免频繁的字符串连接操作,尤其是在循环中,因为这会导致性能下降。使用join()方法结合列表来批量处理字符串连接,通常更为高效。

5. 正则表达式(re模块)

虽然不是字符串内建函数,但Python的re模块提供了强大的字符串匹配和操作工具,对于复杂的文本处理和模式匹配至关重要。

示例 : 使用正则表达式查找所有电子邮件地址。

import re
text = "Contact: example@example.com, info@example.org"
emails = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', text)
print(emails)  # 输出: ['example@example.com', 'info@example.org']

总结

通过上述深入的探讨,你现在已经拥有了一个强大的字符串处理工具箱。继续探索,享受编程带来的乐趣和成就感吧!

试试Python的__slots__魔法,再也不用担心内存不够用了!_python slots-CSDN博客文章浏览阅读708次,点赞15次,收藏15次。在Python的世界里,内存管理是个不可忽视的话题,而__slots__就是这门语言提供的一项强大特性,它能帮助我们有效控制类实例的内存占用。下面,我们将逐步揭开它的神秘面纱,从基础概念到实战演练,深入探讨如何利用__slots__来优化我们的程序。_python slotshttps://blog.csdn.net/xyh2004/article/details/139770860
Peewee,一个既小巧又强大的 Python 库-轻松实现数据库的增删改查-CSDN博客文章浏览阅读662次,点赞30次,收藏13次。Peewee 是一个小巧但功能强大的 ORM 库,适用于小型项目到中型应用程序。它支持 SQLite、MySQL、PostgreSQL 等常见数据库,并且具有优雅的 API 和丰富的功能。Peewee 的设计理念是简单和灵活,使得它非常适合初学者和需要快速开发的场景。https://blog.csdn.net/xyh2004/article/details/139737524
用Python比较对象==与is,你还在用==?out啦,来看这个!-CSDN博客文章浏览阅读1k次,点赞18次,收藏21次。在Python中,对象间的比较是程序设计中的基础且重要的一环,它直接关系到数据处理的逻辑和效率。本章将深入探讨两种基本的比较操作符——==和ishttps://blog.csdn.net/xyh2004/article/details/139717130

 

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

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

相关文章

【SQL】数据操作语言(DML) - 删除数据:精细管理数据的利刃

目录 前言 DELETE语句的基础使用 删除指定记录 清空表与删除表数据的区别 注意 前言 在数据库管理的日常工作中&#xff0c;数据的删除是一项需要格外小心的操作&#xff0c;因为一旦数据被删除&#xff0c;往往难以恢复。数据操作语言(DML)中的DELETE语句&am…

MFC---静态文本框和编辑框Edit Control(控件的通知消息)(常用控件)

上一节讲了颜色对话框之后&#xff0c;关于对话框的使用和各种通用对话框的介绍就到此为止了。从本节开始将讲解各种常用控件的用法。常用控件主要包括&#xff1a;静态文本框、编辑框、单选按钮、复选框、分组框、列表框、组合框、图片控件、列表控件、树形控件和进度条控件等…

苹果笔记本双系统怎么安装

想要在mac电脑上装双系统&#xff0c;首先需要确认您的电脑是否支持。苹果电脑自带的boot camp工具可以帮助您在mac上安装windows系统&#xff0c;只需按照步骤进行操作即可。另外&#xff0c;您也可以使用虚拟机软件&#xff0c;如parallels desktop或vmware fusion&#xff0…

uniapp 微信小程序端使用百度地图API

1、登录百度地图开放平台 https://lbsyun.baidu.com/&#xff08;没有账号则先去创建一个百度账号&#xff09; 2、进入百度地图开放平台控制台&#xff08;导航栏“控制台”&#xff09;&#xff0c;点击“应用管理”-“我的应用” 3、选择“创建应用”&#xff0c;应用模块选…

前端开发实战项目:实时天气预报应用

引言 在本实战项目中&#xff0c;我们将开发一个实时天气预报应用。这个项目将帮助你掌握前端开发的核心技能&#xff0c;包括HTML、CSS、JavaScript&#xff0c;以及如何使用API来获取实时数据。通过这个项目&#xff0c;你将学会如何构建用户界面、处理用户交互、以及与第三…

Java知识点整理 13 — Hutool工具库

在开发时经常需要编写很多与业务无关的代码&#xff0c;比如获取指定日期对象、获取本机 IP 地址、数据加密等。通常我们会将这些代码独立出来&#xff0c;放到 utils 目录下&#xff0c;作为工具类供其它代码调用。 但如果遇到一个从未接触过的领域知识&#xff0c;开发一个新…

python-如何将Python 脚本打包成可执行文件(exe)

文章目录 前言如何将Python 脚本打包成可执行文件&#xff08;exe&#xff09;1. 测试python脚本2. 安装 PyInstaller3. 创建 PyInstaller spec 文件4. 生成可执行文件4.1 去掉黑框 前言 如果您觉得有用的话&#xff0c;记得给博主点个赞&#xff0c;评论&#xff0c;收藏一键三…

【论文阅读】--Popup-Plots: Warping Temporal Data Visualization

弹出图&#xff1a;扭曲时态数据可视化 摘要1 引言2 相关工作3 弹出图3.1 椭球模型3.1.1 水平轨迹3.1.2 垂直轨迹3.1.3 组合轨迹 3.2 视觉映射与交互 4 实施5 结果6 评估7 讨论8 结论和未来工作致谢参考文献 期刊: IEEE Trans. Vis. Comput. Graph.&#xff08;发表日期: 2019&…

基于百度地图实现矩形绘制/电子围栏/自定义覆盖物选择、点击、区域选中、轨迹绘制

目录 开发前的准备账号注册页面创建地图初始化矩形绘制开启绘制模式监听绘制完成事件矩形取消事件自定义覆盖物渲染数据准备覆盖物渲染自定义点击事件优化用户刷新提供的覆盖物添加右键菜单轨迹绘制开发前的准备 账号注册 百度地图开发者平台点此访问 登录注册后点击右上角的控…

【Chapter8】文件系统,计算机操作系统教程,第四版,左万利,王英

文章目录 [toc]一、文件与文件系统1.1 文件1.2 文件系统 二、文件的访问方式2.1 顺序访问2.2 随机访问 三、文件的组织3.1 文件的逻辑组织3.2 文件的物理组织3.2.1 顺序结构3.2.2 链接结构3.2.3 索引结构3.2.4 Hash 结构3.2.5 倒排结构 3.3 UNIX文件物理结构&#xff08;索引链…

深入解读一下 `com.google.android.material.appbar.CollapsingToolbarLayout`

简介 在现代 Android 应用中&#xff0c;提供流畅且美观的用户体验是非常重要的。CollapsingToolbarLayout 是 AndroidX库中 Material Components 的一部分&#xff0c;它提供了一种易于实现的可折叠工具栏效果&#xff0c;常用于提供视觉吸引力的标题栏和动画效果。 本文将详…

printf趣味代码,打印图案

文章目录 1.打印佛祖2.打印猫猫 (闪烁效果) 1.打印佛祖 #include <stdio.h>void budda_bless(){printf("///\n\ // _ooOoo_ //\n\ // o8888888o //\n\ // …

RK3568平台开发系列讲解(调试篇)分析内核调用的利器 ftrace

🚀返回专栏总目录 文章目录 一. 指定 ftrace 跟踪器二、设置要 trace 的函数三、ftrace 的开关四、查看 trace五、trace-cmd 的使用六、trace-cmd 的常用选项6.1、查看可以跟踪的事件6.2、跟踪特定进程的函数调用6.3、函数过滤6.4、限制跟踪深度6.5、追踪特定事件沉淀、分享、…

代码随想录-Day41

46. 携带研究材料&#xff08;第六期模拟笔试&#xff09; 题目描述 小明是一位科学家&#xff0c;他需要参加一场重要的国际科学大会&#xff0c;以展示自己的最新研究成果。他需要带一些研究材料&#xff0c;但是他的行李箱空间有限。这些研究材料包括实验设备、文献资料和实…

C++学习/复习18----迭代器/反向迭代器及在list/vector中的应用、list与vector模拟实现复习

迭代器是一个对象&#xff0c;可以循环访问 C 标准库容器中的元素&#xff0c;并提供对各个元素的访问。 C 标准库容器全都提供迭代器&#xff0c;以便算法可以采用标准方式访问其元素&#xff0c;而不必考虑用于存储元素的容器类型。 一、反向迭代器类 基于普通迭代器构建反…

全面芯片外贸指南解密IC电子元器件商城网站搭建/制作/开发策略

电子元器件行业在数字化转型的大潮下正经历着前所未有的变革。传统销售渠道的局限性日益凸显&#xff0c;越来越多的企业和商家开始寻求线上突破&#xff0c;搭建自己的IC电子元器件商城网站成为提升市场竞争力的关键一步。本篇文章道合顺芯站点将详细阐述搭建IC电子元器件商城…

声场合成新方法:基于声波传播的框架

声场合成是指在房间内的麦克风阵列上&#xff0c;根据来自房间内其他位置的声源信号&#xff0c;合成每个麦克风的音频信号。它是评估语音/音频通信设备性能指标的关键任务&#xff0c;因为它是一种成本效益高的方法&#xff0c;用于数据生成以替代真实的数据收集&#xff0c;后…

python 中面向对象编程:深入理解封装、继承和多态

在本章中&#xff0c;我们将深入探讨Python中的高级面向对象编程概念&#xff0c;包括封装、继承和多态。让我们开始吧&#xff01; 目录 面向对象简介类和实例属性和方法继承和多态 高级面向对象概念私有变量使用 property使用 __slots__类的特殊成员__doc____call____str____…

如何用Vue3打造一个交互式待办事项列表和日历

本文由ScriptEcho平台提供技术支持 项目地址&#xff1a;传送门 构建交互式卡片组件&#xff1a;Vue.js 实战 应用场景介绍 在现代 Web 应用程序中&#xff0c;卡片组件无处不在&#xff0c;它们提供了一种灵活且可扩展的方式来展示信息和启用交互。本文将指导你使用 Vue.j…

Qt 学习(一) addressbook

Qt Demo: addressbook (1)创建项目&#xff1a;选择不创建界面&#xff0c;即UI&#xff0c;此时会自动生成的文件如图所示&#xff1a; QApplication&#xff1a; MainWindow 继承自 QMainWindow&#xff0c;根据需要设计的界面样式。 (2)确定MainWindow 的成员变量 首先&…