首页 > 解决方案 > 带有语句的范围循环

问题描述

我有一个像这样的字符串:

string = "ABCDE_FG_HILMN__OP__QRS_TUVY"

我在这个字符串的中间有一个字母(M)的索引(“位置”)。

index = 11

我需要一个循环,从该索引位置开始+5在左侧和+5右侧打印该位置字符。如果有一个_它必须增加,1以便_在输出中没有并且11最终总共具有字符,例如:

FGHILMNOPQR

我的想法是这样的:

for i in string:
 in = index
 if in != "_" andor [in-5] != "_".... andor ...
   print([in-5],[in-4],[in-3],[in-2],[in-1],[in],[in+1],[in+2],[in+3],[in+4],[in+5])
 elsif
  somethingelse 

标签: loopsrange

解决方案


您可以用空字符串替换“_”并像这样在 M 周围获取 5 个字母

string = "ABCDE_FG_HILMN__OP__QRS_TUVY"

m_pos = 11 - string.count("_", 0, 11)

string.replace("_", "")[m_pos-5: m_pos+6]

推荐阅读