Lochiel
欷宇Lochiel
采纳率0%
2021-03-03 00:02

怎么样才能使字符串中的‘15’在迭代时扫描为‘15’而不是‘1’和‘5’?

求助大佬,怎么样才能使字符串中的‘15’在迭代时扫描为‘15’而不是‘1’和‘5’(或者说怎么把‘1’和‘5’连在一起迭代)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • qq_36911145 封印di恶魔 1月前

    这个要自己实现,迭代时,判断ascii码是不是数字,是的话如果有下一个值,那么判断下一个是不是数字,是的话拼接起来,然后重复判断下个值的操作,直到不是数字

    点赞 评论 复制链接分享
  • huanhuilong 幻灰龙 1月前

    代码如下:

    def next_s(s):
    	v = []
    	s = iter(s)
    	while True:
    		try:
    			i = next(s)
    			if i>='0' and i<='9':
    				v.append(i)	
    			else:
    				if len(v)>0:
    					r = ''.join(v)
    					v = []
    					yield r
    				yield i
    		except StopIteration:
    			break
    	if len(v)>0:
    		yield ''.join(v)
    
    
    def main():
    	s = next_s("100hello15world32")
    	for i in s:
    		print(i)
    
    if __name__ == '__main__':
    	main()

    输出结果:

    100
    h
    e
    l
    l
    o
    15
    w
    o
    r
    l
    d
    32

    基本原理是:

    • 需要在使用 python 的 next 函数遍历字符串的过程中,自己累积整数字符再当作一个组返回。
    • 在这个例子的基础上,你可以实现任意你想要的 `token` 遍历需求。

     

    其中 next/iter 函数参考:

    点赞 评论 复制链接分享
  • qq_34124780 qq_34124780 1月前

    没有具体的字符串实例,只能说个大概的方法就是用一个长度为2的list或者str作为缓冲区,每次读进去两个字符。

    点赞 评论 复制链接分享
  • SoftwareTeacher SoftwareTeacher 1月前

    当你说 ‘迭代’ 的时候, 你用的是什么环境,什么程序, 什么算法?

    点赞 评论 复制链接分享

为你推荐