当前位置:首页 > 科技  > 软件

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

来源: 责编: 时间:2024-06-05 17:39:41 84观看
导读对于Python初学者而言,掌握字符串操作是编程之旅中的重要一步。Python的字符串功能强大而全面,但有些宝藏函数往往被忽略。今天,让我们一起探索这20个鲜为人知的字符串函数,它们将帮助你提升代码的效率与优雅度。1. capit

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

Bmh28资讯网——每日最新资讯28at.com

1. capitalize()

功能 : 将字符串的第一个字符转换为大写。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

2. casefold()

功能 : 类似于lower(),但更彻底,适合用于大小写不敏感的比较。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

3. join() 和 split()

join() : 连接字符串列表,用指定的字符作为分隔符。Bmh28资讯网——每日最新资讯28at.com

split() : 按照指定的分隔符分割字符串。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

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

功能 : 移除字符串开头或结尾的特定字符,默认为空格。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

5. replace()

功能 : 替换字符串中的子串。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

6. format()

功能 : 格式化字符串,灵活地插入变量值。 示例 :Bmh28资讯网——每日最新资讯28at.com

name = "Alice"age = 30formatted = "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()

虽然不是直接字符串函数,但在处理字符串列表时非常有用。 功能 : 返回枚举对象,同时遍历每个元素及其索引。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

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

功能 : 分别检查字符串是否全由字母、数字或字母数字组成。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

9. startswith(), endswith()

功能 : 判断字符串是否以指定前缀或后缀开始或结束。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

10. center()

功能 : 居中字符串,并在两边填充指定字符,默认为空格。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

11. count()

功能 : 计算某个子串在字符串中出现的次数。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

12. find(), index()

find() : 查找子串第一次出现的位置,找不到返回-1。Bmh28资讯网——每日最新资讯28at.com

index() : 同上,但找不到时抛出异常。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

13. maketrans() 和 translate()

功能 : 用于字符替换,创建转换表然后应用转换。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

14. partition(), rpartition()

功能 : 根据指定的分隔符分割字符串,返回包含三个部分的元组。Bmh28资讯网——每日最新资讯28at.com

partition() 从左开始分割。Bmh28资讯网——每日最新资讯28at.com

rpartition() 从右开始分割。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

15. zfill()

功能 : 在字符串左侧填充零,直到达到指定长度。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

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

特别说明 : 虽已提及,但值得再次强调,分别用于从右侧和左侧移除空白字符。Bmh28资讯网——每日最新资讯28at.com

17. format_map()

功能 : 使用字典来格式化字符串,较新的Python版本特性。 示例 :Bmh28资讯网——每日最新资讯28at.com

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+。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

19. encode() 和 decode()

功能 : 分别将字符串编码为字节串和从字节串解码回字符串。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

20. swapcase()

功能 : 将字符串中的大小写互换。 示例 :Bmh28资讯网——每日最新资讯28at.com

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

通过这些深入浅出的介绍和实例,你不仅掌握了Python字符串处理的隐藏技巧,还能在日常编程中更加游刃有余。Bmh28资讯网——每日最新资讯28at.com

高级技巧和实用建议

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

虽然我们已经提到了join()方法,但在简单拼接字符串时,Python提供了更简洁的方式——使用f-string(格式化字符串字面量),自Python 3.6起引入。Bmh28资讯网——每日最新资讯28at.com

示例 :Bmh28资讯网——每日最新资讯28at.com

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

2. 字符串的不可变性

记住,Python中的字符串是不可变的。这意味着一旦创建了一个字符串,就不能修改它。试图改变字符串中的单个字符会引发错误,你应该通过创建一个新的字符串来实现修改。Bmh28资讯网——每日最新资讯28at.com

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

尽管这不是直接的字符串函数,但列表推导式可以巧妙地用于处理字符串,尤其是在需要转换字符串内容时。Bmh28资讯网——每日最新资讯28at.com

示例 : 将字符串所有字符转为大写。Bmh28资讯网——每日最新资讯28at.com

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

4. 字符串的效率考量

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

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

虽然不是字符串内建函数,但Python的re模块提供了强大的字符串匹配和操作工具,对于复杂的文本处理和模式匹配至关重要。Bmh28资讯网——每日最新资讯28at.com

示例 : 使用正则表达式查找所有电子邮件地址。Bmh28资讯网——每日最新资讯28at.com

import retext = "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']

总结

通过上述深入的探讨,你现在已经拥有了一个强大的字符串处理工具箱。继续探索,享受编程带来的乐趣和成就感吧!Bmh28资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-92104-0.htmlPython 中 20 个鲜为人知的字符串函数

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 别背八股文了,WebSocket 是什么,我劝你花几分钟让面试官惊艳!

下一篇: 玩转Redis!非常强大的Redisson分布式集合,少写60%代码

标签:
  • 热门焦点
  • 6月iOS设备好评榜:第一蝉联榜首近一年

    6月iOS设备好评榜:第一蝉联榜首近一年

    作为安兔兔各种榜单里变化最小的那个,2023年6月的iOS好评榜和上个月相比没有任何排名上的变化,仅仅是部分设备好评率的下降,长年累月的用户评价和逐渐退出市场的老款机器让这
  • 帅气纯真少年!日本最帅初中生选美冠军出炉

    帅气纯真少年!日本最帅初中生选美冠军出炉

    日本第一帅哥初一生选美大赛冠军现已正式出炉,冠军是来自千叶县的宗田悠良。日本一直热衷于各种选美大赛,从&ldquo;最美JK&rdquo;起到&ldquo;最美女星&r
  • 三言两语说透柯里化和反柯里化

    三言两语说透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是两种很有用的技术,可以帮助我们写出更加优雅、泛用的函数。本文将首先介绍柯里化和反柯里化的概念、实现原理和应用
  • 虚拟键盘 API 的妙用

    虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 使用Webdriver-manager解决浏览器与驱动不匹配所带来自动化无法执行的问题

    使用Webdriver-manager解决浏览器与驱动不匹配所带来自动化无法执行的问题

    1、前言在我们使用 Selenium 进行 UI 自动化测试时,常常会因为浏览器驱动与浏览器版本不匹配,而导致自动化测试无法执行,需要手动去下载对应的驱动版本,并替换原有的驱动,可能还
  • 一个注解实现接口幂等,这样才优雅!

    一个注解实现接口幂等,这样才优雅!

    场景码猿慢病云管理系统中其实高并发的场景不是很多,没有必要每个接口都去考虑并发高的场景,比如添加住院患者的这个接口,具体的业务代码就不贴了,业务伪代码如下:图片上述代码有
  • 阿里大调整

    阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的&ldquo;征求意见版&rdquo;:1、取消P序列
  • 网传小米汽车开始筛选交付中心 建筑面积不低于3000平方米

    网传小米汽车开始筛选交付中心 建筑面积不低于3000平方米

    7月7日消息,近日有微博网友@长三角行健者爆料称,据经销商集团反馈,小米汽车目前已经开始了交付中心的筛选工作,要求候选场地至少有120个车位,建筑不能低
  • iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    经过了一段时间的密集爆料,昨日iQOO官方如期对外宣布:将于5月23日推出全新的iQOO Neo8系列新品,官方称这是一款拥有旗舰级性能调校的作品。随着发布时
Top
Baidu
map