如何更改Django默认主页为自定义主页,更改Djago默认主页为自定义主页,这是开始网页的第一步。......
如何用Python提取字符串中某两个字符中间的数据
有这么一串不知多长的字符:str=a246ba1234ba5678b...a13579b,如何用Python提取字母a和b中间的所有数据?
在不运用Python第三方模块的前提下,我目前只能想到依靠数组的帮助实现字符串的截取.
工具/原料
- LenovoYOGA
- windows10
- Python3.8
方法/步骤
为方便后续计算,先用rfind找出最后一个b所在的索引位置:
def d_test():
v_str='a246ba1234ba5678b...a13579b'
v_len=v_str.rfind('b')
print(v_len)
return
d_test()
接下来尝试用for循环找到所有a的索引位置,并填入数组:
def d_test():
v_str='a246ba1234ba5678b...a13579b'
v_len=v_str.rfind('b')
v_arrayA=[]
for v_i in range(0,v_len):
v_arrayA.append(v_str.find('a',v_i))
print(v_arrayA)
return
d_test()
数组里有很多重复项,可以用set去重:
def d_test():
v_str='a246ba1234ba5678b...a13579b'
v_len=v_str.rfind('b')
v_arrayA=[]
for v_i in range(0,v_len):
v_arrayA.append(v_str.find('a',v_i))
v_arrayA=set(v_arrayA)
print(v_arrayA)
return
d_test()
由于set创建的是一个无序不重复元素集,去重后数组的排序可能会变乱,还得用list和sort重新排序:
def d_test():
v_str='a246ba1234ba5678b...a13579b'
v_len=v_str.rfind('b')
v_arrayA=[]
for v_i in range(0,v_len):
v_arrayA.append(v_str.find('a',v_i))
v_arrayA=list(set(v_arrayA))
v_arrayA.sort()
print(v_arrayA)
return
d_test()
find查找失败的结果是-1,所以要把多出来的-1用remove从数组里删除:
def d_test():
v_str='a246ba1234ba5678b...a13579b'
v_len=v_str.rfind('b')
v_arrayA=[]
for v_i in range(0,v_len):
v_arrayA.append(v_str.find('a',v_i))
v_arrayA=list(set(v_arrayA))
v_arrayA.sort()
v_arrayA.remove(-1)
print(v_arrayA)
return
d_test()
所有a的索引位置找出来了,用同样方法找出全部b的索引位置:
def d_test():
v_str='a246ba1234ba5678b...a13579b'
v_len=v_str.rfind('b')
v_arrayA=[]
v_arrayB=[]
for v_i in range(0,v_len):
v_arrayA.append(v_str.find('a',v_i))
v_arrayB.append(v_str.find('b',v_i))
v_arrayA=list(set(v_arrayA))
v_arrayA.sort()
v_arrayA.remove(-1)
v_arrayB=list(set(v_arrayB))
v_arrayB.sort()
print(v_arrayA)
print(v_arrayB)
return
d_test()
现在有了两个A和B两个数组,再用for循环让它们一一对应就行了:
def d_test():
v_str='a246ba1234ba5678b...a13579b'
v_len=v_str.rfind('b')
v_arrayA=[]
v_arrayB=[]
for v_i in range(0,v_len):
v_arrayA.append(v_str.find('a',v_i))
v_arrayB.append(v_str.find('b',v_i))
v_arrayA=list(set(v_arrayA))
v_arrayA.sort()
v_arrayA.remove(-1)
v_arrayB=list(set(v_arrayB))
v_arrayB.sort()
for v_i in range(0,len(v_arrayA)):
v_a=v_arrayA[v_i]
v_b=v_arrayB[v_i]
print(v_a,v_b)
return
d_test()
最后用字符串截取功能得到数据,截取的时候注意a的位置要右移一个索引位置:
def d_test():
v_str='a246ba1234ba5678b...a13579b'
v_len=v_str.rfind('b')
v_arrayA=[]
v_arrayB=[]
for v_i in range(0,v_len):
v_arrayA.append(v_str.find('a',v_i))
v_arrayB.append(v_str.find('b',v_i))
v_arrayA=list(set(v_arrayA))
v_arrayA.sort()
v_arrayA.remove(-1)
v_arrayB=list(set(v_arrayB))
v_arrayB.sort()
v_data=[]
for v_i in range(0,len(v_arrayA)):
v_a=v_arrayA[v_i]
v_b=v_arrayB[v_i]
v_data.append(v_str[v_a 1:v_b])
print(v_data)
return
d_test()
注意事项
- 如果有疑问,欢迎留言交流
- 如果此经验帮到您,请点个赞吧
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
标签: python
相关文章
- 详细阅读
-
python中关于单/双引号和转义引号的区别详细阅读
python中关于单/双引号和转义引号的区别,ytho中单/双引号的作用是将引号中间的符号以字符串的形式传递,而在ytho中它们两个的功能是一样的,只不过在遇到转义引号的时候,两者的使用才有所区别,现......
2023-03-16 322 python
- 详细阅读