目录
- python字符串处理示例解析
- 一、字符串的"七十二变":创建与切片
- 二、文本拼接的3把利器
- 三、切割与重组:split()和join()
- 四、精准定位:查http://www.devze.com找替换技巧
- 五、格式化输出:三种高阶玩法
- 六、清洗标准化:大小写与空白处理
- 七、终极武器:完整数据处理模板
- python中7种方法实现字符串的拼接
- 1.直接通过(+)操作符拼接
- 2.通过str.join()方法拼接
- 3.通过str.format()方法拼接
- 4.通过(%)操作符拼接
- 5.通过()多行拼接
- 6.通过string模块中的Template对象拼接
- 7.通过F-strings拼接
Python字符串处理示例解析
一、字符串的"七十二变":创建与切片
Python字符串就像灵活的积木,支持多种创建方式:
# 单双引号通用 msg = "Hello 数据科学家!" path = r'C:\new_folder' # 原始字符串避免转义 # 切片操作 [start:end:step] text = "Python超实用" print(text[2:5]) # tho print(text[::-1]) # 用实超nohtyP
二、文本拼接的3把利器
- 加号拼接:简单少量文本
- join()方法:高效连接列表- f-string:Python 3.6+首选names = ["张伟", "李娜", "王阳"] # 传统方式(性能低) full_str = names[0] + "," + names[1] + "," + names[2] # 高效方式 print(",".joandroidin(names)) # 张伟,李娜,王阳 # 现代方式(推荐) print(f"获奖者:{names[0]}、{names[1]}、{names[2]}")
三、切割与重组:split()和join()
这对黄金搭档处理结构化文本:
# 拆分CSV数据 csv_data = "ID,Name,Salary\n101,张三,15000" rows = csv_data.split('\n') for row in rows: cols = row.split(',') print(cols) # 重组URL路径 folders = ['img','2024','logo.png'] print('/'.join(folders)) # img/2024/logo.png
四、精准定位:查找替换技巧
- find():返回首次出现位置
- replace():全局替换内容- in关键字:快速存在性检测log = "ERROR: File not found [code:404]" # 定位关键信息 print(log.find("404")) # 28 print("ERROR" in log) # True # 敏感信息脱敏 secure_log = log.replace("404", "XXX") print(secure_log) # ERROR: File not found [code:XXX]
五、格式化输出:三种高阶玩法
告别混乱拼接:
# 1. %格式化(经典) print("温度:%.1fC" % 23.456) # 温度:23.5C # 2. str.format()(灵活) print("坐标:({x},{y})".format(x=120, y=89)) # 3. f-string(推荐) name = "Alice" print(f"欢迎{name.upper()}!积分:{1000*1.2:.0f}")
六、清洗标准化:大小写与空白处理
数据清洗必备四件套:
raw_text = "www.devze.com Python数据分析 \t\n" # 去空格 clean_text = raw_text.strip() print(clean_text) # "Python数据分析" # 大小写转换 print(clean_text.upper()) # PYTHON数据分析 print(clean_text.lower()) # python数据分析 # 首字母大写 print("hello world".title()) # Hello World
七、终极武器:完整数据处理模板
def clean_text_data(text): """文本清洗标准化流程""" # 1. 去除首尾空白 text = text.strip() # 2. 转换为小写 text = text.lower() # 3. 替换特殊字符 text = text.replace('$', 'USD').replace('', 'CNY') # 4. 分割重组 words = text.split() return ' '.join(words[:5]) # 保留前5个词 raw_data = " $19.99 限时优惠 买一送一 " print(clean_text_data(raw_data)) # 输出:usd19.99 限时优惠 买一送一
python中7种方法实现字符串的拼接
1.直接通过(+)操作符拼接
>>> 'Hello' + ' ' + 'World' + '!' 'Hello World!'
使用这种方式进行字符串连接的操作效率低下ORzKnigVGg,因为python中使用 + 拼接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当拼接字符串较多时自然会影响效率。
2.通过str.join()方法拼接
>>> strlist = ['Hello', ' ', 'World', '!'] >>> ''.join(strlist) 'Hello World!'
这种方式一般常使用在将集合转化为字符串,''.join()其中''可以是空字符,也可以是任意其他字符,当是任意其他字符时,集合中字符串会被该字符隔开。
3.通过str.format()方法拼接
>>> '{} {}!'.format('Hello', 'World') 'Hello World!'
通过这种方式拼接字符串需要注意的是字符串中{}的数量要和format方法参数数量一致,否则会报错。
4.通过(%)操作符拼接
>>> '%s %s!' % ('Hello', 'World') 'Hello World!'
这种方式与str.format()使用方式基本一致。
5.通过()多行拼接
>>> ( ... 'Hello' ... ' ' ... 'World' ... '!' ... ) 'Hello World!'
python遇到未闭合的小括号,自动将多行拼接为一行。
6.通过string模块中的Template对象拼接
>>> from string import Template >>> s = Template('${s1} ${s2}!') >>> s.safe_substitute(s1='Hello',s2='World') 'Hello World!'
Template的实现方式是首先通过Template初始化一个字符串。这些字符串中包含了一个个key。通过调用substitute或safe_subsititute,将key值与方法中传递过来的参数对应上,从而实现在指定的位置导入字符串。这种方式的好处是不需要担心参数不一致引发异常,如:
>>> from string import Template >>> s = Template('${s1} ${s2} ${s3}!') >>> s.safe_substitute(s1='Hello',s2='World') 'Hello World ${s3}!'
7.通过F-strings拼接
在python3.6.2版本中,PEP 498 提出一种新型字符串格式化机制,被称为“字符串插值”或者更常见的一种称呼是F-strings,F-strings提供了一种明确且方便的方式将python表达式嵌入到字符串中来进行格式化:
>>> s1 = 'Hello' >>> s2 = 'World' >>> f'{s1} {s2}!' 'Hello World!'
在F-strings中我们也可以执行函数:
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:153708845 >>> def power(x): ... return x*x ... >>> x = 5 >>> f'{x} * {x} = {power(x)}' '5 * 5 = 25'
而且F-strings的运行速度很快,比%-string和stphpr.format()这两种格式化方法都快得多。
到此这篇关于Python字符串处理示例解析的文章就介绍到这了,更多相关Python字符串处理内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!
精彩评论