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

目录

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.mfbz.cn/a/746230.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ATFX汇市:澳大利亚5月CPI大增0.4百分点,降息预期显著降温

ATFX汇市&#xff1a;据澳大利亚统计局数据&#xff0c;澳大利亚5月加权CPI年率为4%&#xff0c;高于前值3.6%&#xff0c;高于预期3.8%&#xff0c;显示出澳大利亚通胀率颇具韧性。5月份数据公布之前&#xff0c;月度CPI年率平均波幅不足0.1个百分点&#xff0c;呈现出横盘震荡…

2024年高级会计职称题库。高效备考!!!

61.下列各项中&#xff0c;属于对会计职业道德进行自律管理与约束的机构是&#xff08;&#xff09;。 A.纪律检查部门 B.财政部门 C.会计行业组织 D.其他组织 答案&#xff1a;C 62.下列各项中&#xff0c;对会计职业行为自我约束和自我控制的部门主要是&#xff08;&am…

光伏储能为什么变得那么受欢迎?

在当今这个追求可持续发展和清洁能源的时代&#xff0c;光伏储能技术逐渐崭露头角&#xff0c;并成为了能源领域的热门话题。其受欢迎程度不断攀升&#xff0c;背后有着多方面的原因。光伏储能技术的优点众多&#xff0c;涵盖了多个方面&#xff0c;以下是关于其安全、寿命等关…

数学学习与研究杂志社《数学学习与研究》杂志社2024年第6期目录

课改前沿 基于核心素养的高中数学课堂教学研究——以“直线与圆、圆与圆的位置关系”为例 张亚红; 2-4 核心素养视角下初中生数学阅读能力的培养策略探究 贾象虎; 5-7 初中数学大单元教学实践策略探索 耿忠义; 8-10《数学学习与研究》投稿&#xff1a;cn7kantougao…

【精品方案】智能制造之路(93页PPT)

引言&#xff1a;智能制造之路&#xff1a;革新制造业的引领之旅 随着科技的迅猛发展&#xff0c;特别是人工智能、物联网、大数据等技术的不断进步&#xff0c;制造业正迎来一场深刻的变革。智能制造&#xff0c;作为这场变革的核心&#xff0c;正逐步成为推动产业升级和转型发…

mid360配置lio-sam、point-lio和faster-lio(faster-lio未敢配置)

一、使用mid360配置lio-sam 1.首先从GitHub - nkymzsy/LIO-SAM-MID360 at Livox-ros-driver2 下载能支持mid360的lio-sam版本到 ws_livox/src中&#xff0c;直接编译&#xff0c;就可以成功。 2.使用 roslaunch lio_sam run6axis.launch以及播之前我才记得Mid360的包&#x…

YOLO系列改进

yolo核心思想&#xff1a;把目标检测转变成一个回归问题。将整个图像作为网络的输入&#xff0c;仅仅经过一个神经网络&#xff0c;得到边界框的位置及其所属的类别。 YOLOv1 CVPR2016 输出7730的张量表示2个框的5个参数和20个种类。leaky ReLU&#xff0c;leaky并不会让负数…

【笔记】备份VScode代码至GitHub

目录 不小心把代码删掉了&#xff0c;还没备份备份步骤创建新工作区和测试文件还有GitHub项目初始化git注意 最后一步 不小心把代码删掉了&#xff0c;还没备份 试着安装了一下GitHub Pull Requests&#xff0c;不会用 备份步骤 创建新工作区和测试文件还有GitHub项目 首先…

RT-Thread Studio实现动态线程

1创建项目 我的板子为STM32F03ZET6 点击RT-Thread项目 2选择板子&#xff08;根据自己的板子选择&#xff09; 3找到主函数 4编写代码 4-1创建函数入口 // 线程入口函数 static void thread_entry(void *parameter) {rt_uint32_t count 0;while (1){// 线程执行的代码rt_k…

图书馆书籍管理系统

项目名称与项目简介 图书馆书籍管理系统 本项目是一个计算机管理系统&#xff0c;也就是将传统手工的管理方式转变为智能化、标准化、规范化的管理管理模式&#xff0c;对图书馆中所有的图书、文献资料、音像资料、报刊、期刊等各种类型的资料实现采编、收集图书信息、检索、归…

Docker系列之安全

Docker的安全前言一、Docker 容器与虚拟机的区别 1. 隔离与共享 2. 性能与损耗二、Docker 存在的安全问题 1.Docker 自身漏洞 2.Docker 源码问题三、 Docker 架构缺陷与安全机制 1. 容器之间的局域网攻击 2. DDoS 攻击耗尽资源 3. 有漏…

Python22 Pandas库

Pandas 是一个Python数据分析库&#xff0c;它提供了高性能、易于使用的数据结构和数据分析工具。这个库适用于处理和分析输入数据&#xff0c;常见于统计分析、金融分析、社会科学研究等领域。 1.Pandas的核心功能 Pandas 库的核心功能包括&#xff1a; 1.数据结构&#xff…

游戏AI的创造思路-技术基础-深度学习(6)

让人工智障具备信念吧&#xff0c;依莫拉萨~~~串频道暴露年龄。。。不过深度信念和信念真的没啥关系&#xff0c;不知道为啥这样起名 目录 3.6. 深度信念网络(DBN) 3.6.1. 定义 3.6.2. 发展历史 3.6.3. 算法公式 3.6.4. 运行原理 3.6.4.1. 基本原理 3.6.4.2. Python实现…

人大金仓×深信服:打造高性能、高可靠教育信创数据库一体机解决方案

信息技术应用创新是数字经济发展的关键支撑和重要基石&#xff0c;近年来&#xff0c;国家高度重视信息技术应用创新产业发展。教育行业作为我国人才培养的发动机&#xff0c;发展教育信创是保持信创创新力、是提升信创人才质量的重要举措、是保障信创产业可持续发展的关键环节…

某平台小程序逆向思路整理

一、下载软件 devtools 二、强制打开控制台 根据返回的数据我们得知数据被加密了 找到这个加密的js 发现加密的位置 打断点进入这个加密的方法 之后自定义js。python调用解密即可。

web渗透-SSRF漏洞及discuz论坛网站测试

一、简介 ssrf(server-side request forgery:服务器端请求伪造&#xff09;是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下&#xff0c;ssrf是要目标网站的内部系统。(因为他是从内部系统访问的&#xff0c;所有可以通过它攻击外网无法访问的内部系统&…

js+php 上传文件到服务器

https://andi.cn/page/621473.html

Navicat Premium Lite绿色免费版

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl Navicat Premium Lite概述 Navicat 最近推出了一款名为 Navicat Premium Lite 的免费数据库管理开发工具&#xff0c;专为入门级用户设计。这款工具虽然在功能上与 Navicat…

转让北京资产评估公司变更需要什么条件和要求

北京资产评估公司是有限责任公司。因为有限责任公司具有人合属性&#xff0c;股东的个人信用及相互关系直接影响到公司的风格甚至信誉&#xff0c;所以各国公司法对有限责任公司股东向公司外第三人的转让股权&#xff0c;多有限制性规定。大致可分为法定限制和约定限制两类。公…

Centos7虚拟机

Centos 7 安装 1 镜像下载1.1 官网下载1.2 阿里云镜像下载 2 环境的安装2.1 打开我们的虚拟机&#xff0c;点击文件进行新建2.2 选择典型之后&#xff0c;下一步2.3 选择稍会安装操作系统2.4 勾选Linux&#xff0c;并且选择CentOS 7的版本2.5 设定我们虚拟机的名称和安装位置2.…