首页 > 软件开发 > PYTHON >

如何用Python提取字符串中某两个字符中间的数据

来源:互联网 2023-03-16 19:27:47 504

有这么一串不知多长的字符:str=a246ba1234ba5678b...a13579b,如何用Python提取字母a和b中间的所有数据?zpY办公区 - 实用经验教程分享!

在不运用Python第三方模块的前提下,我目前只能想到依靠数组的帮助实现字符串的截取.zpY办公区 - 实用经验教程分享!

如何用Python提取字符串中某两个字符中间的数据zpY办公区 - 实用经验教程分享!

工具/原料

  • LenovoYOGA
  • windows10
  • Python3.8

方法/步骤

  • 1

    为方便后续计算,先用rfind找出最后一个b所在的索引位置:zpY办公区 - 实用经验教程分享!

    def d_test():zpY办公区 - 实用经验教程分享!

    v_str='a246ba1234ba5678b...a13579b'zpY办公区 - 实用经验教程分享!

    v_len=v_str.rfind('b')zpY办公区 - 实用经验教程分享!

    print(v_len)zpY办公区 - 实用经验教程分享!

    returnzpY办公区 - 实用经验教程分享!

    d_test()zpY办公区 - 实用经验教程分享!

    如何用Python提取字符串中某两个字符中间的数据zpY办公区 - 实用经验教程分享!

  • 1此文章未经授权抓取自百度经验
  • 2

    接下来尝试用for循环找到所有a的索引位置,并填入数组:zpY办公区 - 实用经验教程分享!

    def d_test():zpY办公区 - 实用经验教程分享!

    v_str='a246ba1234ba5678b...a13579b'zpY办公区 - 实用经验教程分享!

    v_len=v_str.rfind('b')zpY办公区 - 实用经验教程分享!

    v_arrayA=[]zpY办公区 - 实用经验教程分享!

    for v_i in range(0,v_len):zpY办公区 - 实用经验教程分享!

    v_arrayA.append(v_str.find('a',v_i))zpY办公区 - 实用经验教程分享!

    print(v_arrayA)zpY办公区 - 实用经验教程分享!

    returnzpY办公区 - 实用经验教程分享!

    d_test()zpY办公区 - 实用经验教程分享!

    如何用Python提取字符串中某两个字符中间的数据zpY办公区 - 实用经验教程分享!

  • 3

    数组里有很多重复项,可以用set去重:zpY办公区 - 实用经验教程分享!

    def d_test():zpY办公区 - 实用经验教程分享!

    v_str='a246ba1234ba5678b...a13579b'zpY办公区 - 实用经验教程分享!

    v_len=v_str.rfind('b')zpY办公区 - 实用经验教程分享!

    v_arrayA=[]zpY办公区 - 实用经验教程分享!

    for v_i in range(0,v_len):zpY办公区 - 实用经验教程分享!

    v_arrayA.append(v_str.find('a',v_i))zpY办公区 - 实用经验教程分享!

    v_arrayA=set(v_arrayA)zpY办公区 - 实用经验教程分享!

    print(v_arrayA)zpY办公区 - 实用经验教程分享!

    returnzpY办公区 - 实用经验教程分享!

    d_test()zpY办公区 - 实用经验教程分享!

    如何用Python提取字符串中某两个字符中间的数据zpY办公区 - 实用经验教程分享!

  • 4

    由于set创建的是一个无序不重复元素集,去重后数组的排序可能会变乱,还得用list和sort重新排序:zpY办公区 - 实用经验教程分享!

    def d_test():zpY办公区 - 实用经验教程分享!

    v_str='a246ba1234ba5678b...a13579b'zpY办公区 - 实用经验教程分享!

    v_len=v_str.rfind('b')zpY办公区 - 实用经验教程分享!

    v_arrayA=[]zpY办公区 - 实用经验教程分享!

    for v_i in range(0,v_len):zpY办公区 - 实用经验教程分享!

    v_arrayA.append(v_str.find('a',v_i))zpY办公区 - 实用经验教程分享!

    v_arrayA=list(set(v_arrayA))zpY办公区 - 实用经验教程分享!

    v_arrayA.sort()zpY办公区 - 实用经验教程分享!

    print(v_arrayA)zpY办公区 - 实用经验教程分享!

    returnzpY办公区 - 实用经验教程分享!

    d_test()zpY办公区 - 实用经验教程分享!

    如何用Python提取字符串中某两个字符中间的数据zpY办公区 - 实用经验教程分享!

  • 5

    find查找失败的结果是-1,所以要把多出来的-1用remove从数组里删除:zpY办公区 - 实用经验教程分享!

    def d_test():zpY办公区 - 实用经验教程分享!

    v_str='a246ba1234ba5678b...a13579b'zpY办公区 - 实用经验教程分享!

    v_len=v_str.rfind('b')zpY办公区 - 实用经验教程分享!

    v_arrayA=[]zpY办公区 - 实用经验教程分享!

    for v_i in range(0,v_len):zpY办公区 - 实用经验教程分享!

    v_arrayA.append(v_str.find('a',v_i))zpY办公区 - 实用经验教程分享!

    v_arrayA=list(set(v_arrayA))zpY办公区 - 实用经验教程分享!

    v_arrayA.sort()zpY办公区 - 实用经验教程分享!

    v_arrayA.remove(-1)zpY办公区 - 实用经验教程分享!

    print(v_arrayA)zpY办公区 - 实用经验教程分享!

    returnzpY办公区 - 实用经验教程分享!

    d_test()zpY办公区 - 实用经验教程分享!

    如何用Python提取字符串中某两个字符中间的数据zpY办公区 - 实用经验教程分享!

  • 6

    所有a的索引位置找出来了,用同样方法找出全部b的索引位置:zpY办公区 - 实用经验教程分享!

    def d_test():zpY办公区 - 实用经验教程分享!

    v_str='a246ba1234ba5678b...a13579b'zpY办公区 - 实用经验教程分享!

    v_len=v_str.rfind('b')zpY办公区 - 实用经验教程分享!

    v_arrayA=[]zpY办公区 - 实用经验教程分享!

    v_arrayB=[]zpY办公区 - 实用经验教程分享!

    for v_i in range(0,v_len):zpY办公区 - 实用经验教程分享!

    v_arrayA.append(v_str.find('a',v_i))zpY办公区 - 实用经验教程分享!

    v_arrayB.append(v_str.find('b',v_i))zpY办公区 - 实用经验教程分享!

    v_arrayA=list(set(v_arrayA))zpY办公区 - 实用经验教程分享!

    v_arrayA.sort()zpY办公区 - 实用经验教程分享!

    v_arrayA.remove(-1)zpY办公区 - 实用经验教程分享!

    v_arrayB=list(set(v_arrayB))zpY办公区 - 实用经验教程分享!

    v_arrayB.sort()zpY办公区 - 实用经验教程分享!

    print(v_arrayA)zpY办公区 - 实用经验教程分享!

    print(v_arrayB)zpY办公区 - 实用经验教程分享!

    returnzpY办公区 - 实用经验教程分享!

    d_test()zpY办公区 - 实用经验教程分享!

    如何用Python提取字符串中某两个字符中间的数据zpY办公区 - 实用经验教程分享!

  • 7

    现在有了两个A和B两个数组,再用for循环让它们一一对应就行了:zpY办公区 - 实用经验教程分享!

    def d_test():zpY办公区 - 实用经验教程分享!

    v_str='a246ba1234ba5678b...a13579b'zpY办公区 - 实用经验教程分享!

    v_len=v_str.rfind('b')zpY办公区 - 实用经验教程分享!

    v_arrayA=[]zpY办公区 - 实用经验教程分享!

    v_arrayB=[]zpY办公区 - 实用经验教程分享!

    for v_i in range(0,v_len):zpY办公区 - 实用经验教程分享!

    v_arrayA.append(v_str.find('a',v_i))zpY办公区 - 实用经验教程分享!

    v_arrayB.append(v_str.find('b',v_i))zpY办公区 - 实用经验教程分享!

    v_arrayA=list(set(v_arrayA))zpY办公区 - 实用经验教程分享!

    v_arrayA.sort()zpY办公区 - 实用经验教程分享!

    v_arrayA.remove(-1)zpY办公区 - 实用经验教程分享!

    v_arrayB=list(set(v_arrayB))zpY办公区 - 实用经验教程分享!

    v_arrayB.sort()zpY办公区 - 实用经验教程分享!

    for v_i in range(0,len(v_arrayA)):zpY办公区 - 实用经验教程分享!

    v_a=v_arrayA[v_i]zpY办公区 - 实用经验教程分享!

    v_b=v_arrayB[v_i]zpY办公区 - 实用经验教程分享!

    print(v_a,v_b)zpY办公区 - 实用经验教程分享!

    returnzpY办公区 - 实用经验教程分享!

    d_test()zpY办公区 - 实用经验教程分享!

    如何用Python提取字符串中某两个字符中间的数据zpY办公区 - 实用经验教程分享!

  • 8

    最后用字符串截取功能得到数据,截取的时候注意a的位置要右移一个索引位置:zpY办公区 - 实用经验教程分享!

    def d_test():zpY办公区 - 实用经验教程分享!

    v_str='a246ba1234ba5678b...a13579b'zpY办公区 - 实用经验教程分享!

    v_len=v_str.rfind('b')zpY办公区 - 实用经验教程分享!

    v_arrayA=[]zpY办公区 - 实用经验教程分享!

    v_arrayB=[]zpY办公区 - 实用经验教程分享!

    for v_i in range(0,v_len):zpY办公区 - 实用经验教程分享!

    v_arrayA.append(v_str.find('a',v_i))zpY办公区 - 实用经验教程分享!

    v_arrayB.append(v_str.find('b',v_i))zpY办公区 - 实用经验教程分享!

    v_arrayA=list(set(v_arrayA))zpY办公区 - 实用经验教程分享!

    v_arrayA.sort()zpY办公区 - 实用经验教程分享!

    v_arrayA.remove(-1)zpY办公区 - 实用经验教程分享!

    v_arrayB=list(set(v_arrayB))zpY办公区 - 实用经验教程分享!

    v_arrayB.sort()zpY办公区 - 实用经验教程分享!

    v_data=[]zpY办公区 - 实用经验教程分享!

    for v_i in range(0,len(v_arrayA)):zpY办公区 - 实用经验教程分享!

    v_a=v_arrayA[v_i]zpY办公区 - 实用经验教程分享!

    v_b=v_arrayB[v_i]zpY办公区 - 实用经验教程分享!

    v_data.append(v_str[v_a 1:v_b])zpY办公区 - 实用经验教程分享!

    print(v_data)zpY办公区 - 实用经验教程分享!

    returnzpY办公区 - 实用经验教程分享!

    d_test()zpY办公区 - 实用经验教程分享!

    如何用Python提取字符串中某两个字符中间的数据zpY办公区 - 实用经验教程分享!

  • 注意事项

    • 如果有疑问,欢迎留言交流
    • 如果此经验帮到您,请点个赞吧

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!zpY办公区 - 实用经验教程分享!


    标签: python

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码