目录
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 |