python 按照固定长度分割字符串

有如下的一堆字符串,需要更改成一定格式,如 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"]

运行结果:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值