有如下的一堆字符串,需要更改成一定格式,如 str = ‘902B345FB021’ 改为 str = ‘90-2B-34-5F-B0-21’。
借助 python 脚本,可以轻松实现,原理就是:字符串的按照固定长度拆分。
方法一:
代码示例:
import time
# 一百万条数据做测试
str_list = ["902B345FB021"] * 1000000
# 方法一:
t = time.time()
for str in str_list:
s = str.strip()
r = ''
for i in range(len(s)):
if i != 0 and i % 2 == 0:
r = r + '-' + s[i]
else:
r = r + s[i]
# print("方法一", r)
print("方法一用时:", time.time() - t)
方法二:
代码示例:
import re
import time
# 一百万条数据做测试
str_list = ["902B345FB021"] * 1000000
t = time.time()
for str in str_list:
s = str.strip()
s = re.findall(r'.{2}', s)
r = '-'.join(s)
# print("方法二", r)
print("方法二用时:", time.time() - t)
测试结果:
由此可见,方法二比方法一效率高,但是慎用方法二,如果字符串长度小于固定长度或者字符串长度不能够被固定长度整除,那么将造成数值丢失。
例如:
str_list = ["902B345FB021", "1", "12345"]
运行结果:

本文介绍两种使用Python批量处理字符串的方法,将长串字符按照每两位插入连接符,方法一通过循环逐字符处理,方法二利用正则表达式进行匹配替换。测试表明,方法二效率更高,但需注意字符串长度不匹配时可能导致数据丢失。
1140

被折叠的 条评论
为什么被折叠?



