一行代码教你实现Python字符串处理
前言
Python 字符串处理是日常开发、数据清洗、爬虫、毕设中最常用的操作!本文整理 18 个一行代码搞定的字符串实战技巧,无需循环、无需多行逻辑,简洁高效,新手也能直接上手。
涵盖:大小写转换、去空格、分割、拼接、替换、查找、提取、判断、反转、去重、格式化等全场景,工作学习直接复用!
一、基础格式处理
s = " Python 实战 123!hello "
# 1. 去除首尾空格
s.strip()
# 2. 全部转大写
s.upper()
# 3. 全部转小写
s.lower()
# 4. 首字母大写
s.title()
# 5. 大小写互换
s.swapcase()
# 6. 去除所有空格(首尾+中间)
s.replace(" ", "")
# 7. 把多个空格变成一个空格
' '.join(s.split())
二、分割、拼接、替换
s = "a,b;c d|e"
# 8. 按多种符号分割(正则一行)
import re; re.split(r"[,; |]", s)
# 9. 列表拼接成字符串
lst = ["Python", "实战", "字符串"]; ''.join(lst)
# 10. 替换所有指定字符
s.replace("a", "A")
# 11. 替换多个不同字符
s.translate(str.maketrans({',':'', ';':'', '|':''}))
三、判断、查找、提取
s = "Python123" # 12. 判断是否全是字母 s.isalpha() # 13. 判断是否全是数字 s.isdigit() # 14. 提取字符串中所有数字 ''.join([i for i in s if i.isdigit()]) # 15. 提取字符串中所有字母 ''.join([i for i in s if i.isalpha()]) # 16. 判断是否包含某个子串 "Python" in s
四、高级实用技巧
s = "Python" # 17. 字符串反转 s[::-1] # 18. 字符串去重(保持顺序) ''.join(sorted(set(s), key=s.index))
五、最常用组合:一行清洗脏文本
爬虫 / 数据清洗必备,一行完成:去空格 + 转小写 + 去特殊符号
s = " Hello@Python#实战123! " clean_s = re.sub(r'[^a-zA-Z0-9\u4e00-\u9fa5]', '', s.strip().lower())
六、知识扩展
在 Python 中,“一行代码”通常不是指功能限制,而是一种写法上的简洁追求。通过灵活运用内建函数、字符串方法、列表推导式、切片、map/filter/reduce 以及正则表达式,你可以用单行语句完成许多常见的字符串处理任务。
下面整理了一些实用的单行代码示例,覆盖了最常见的字符串操作场景。
基础操作(单行可执行)
s = " Hello, World! "
# 反转字符串
s[::-1] # " !dlroW ,olleH "
# 大小写转换
s.upper() # " HELLO, WORLD! "
s.lower() # " hello, world! "
s.title() # " Hello, World! "
# 去除首尾空格/指定字符
s.strip() # "Hello, World!"
s.strip(' !') # "Hello, World"
# 替换子串
s.replace('World', 'Python') # " Hello, Python! "
# 判断内容
s.isalpha() # False (含标点和空格)
s.isdigit() # False
'123'.isdigit() # True
s.startswith(' He') # True
# 分割与合并
words = s.split() # ['Hello,', 'World!']
'-'.join(words) # "Hello,-World!"
# 检查子串
'World' in s # True
# 统计子串出现次数
s.count('l') # 3
# 按行分割
multiline = "a\nb\nc"
multiline.splitlines() # ['a', 'b', 'c']
# 字符串填充/居中
s.center(30, '-') # "--- Hello, World! ---"
s.ljust(30, '*') # " Hello, World! **********"
s.rjust(30, '*') # "********** Hello, World! "
# 移除特定字符(如移除所有空格和感叹号)
''.join(c for c in s if c not in ' !') # "HelloWorld"进阶应用(一行内完成组合操作)
# 提取字符串中的所有数字
import re
re.findall(r'\d+', 'ab12cd34ef') # ['12', '34']
# 将所有单词首字母大写(保持其他字符不变)
' '.join(w.capitalize() for w in s.split()) # "Hello, World!"
# 判断字符串是否为回文(忽略空格和大小写)
t = "A man a plan a canal Panama"
t = t.replace(' ', '').lower()
t == t[::-1] # True
# 统计单词出现频率(返回字典)
from collections import Counter
Counter(s.split()) # Counter({'Hello,': 1, 'World!': 1})
# 批量替换多个字符(使用 str.translate)
trans = str.maketrans({'H':'J', 'W':'X'})
s.translate(trans) # " Jello, Xorld! "一行代码定义可复用的字符串处理函数
你也可以用 lambda 或赋值表达式(Python 3.8+)在一行内定义一个处理函数:
# 定义函数:去空格、转小写、替换空格为下划线
process = lambda x: x.strip().lower().replace(' ', '_')
print(process(" Hello World ")) # "hello_world"
# 或者使用 walrus 操作符在一行内完成处理并赋值(不推荐用于复杂逻辑)
(result := " Hello World ".strip().lower()) # 同时完成处理并赋值给变量七、总结(速记)
- 去空格:
strip()/replace(" ", "") - 大小写:
upper()/lower()/title() - 分割拼接:
split()/join() - 提取数字 / 字母:列表推导式一行搞定
- 反转:
[::-1] - 清洗文本:正则
re.sub()最强
到此这篇关于一行代码教你实现Python字符串处理的文章就介绍到这了,更多相关Python字符串处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
对python中使用requests模块参数编码的不同处理方法
今天小编就为大家分享一篇对python中使用requests模块参数编码的不同处理方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-05-05


最新评论