- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
def get(a='',x=-1):
b,c,d,e,f=a.split('\n'),[],[],0,0
for i in range(len(b)):
if i==0: c+=[i]; e+=len(b[i])+1; f+=len(b[i]); d+=[f]
elif i==len(b)-1: f+=len(b[i]); d+=[f]; c+=[e]
else: f+=len(b[i])+1; c+=[e]; d+=[f]; e+=len(b[i])+1
for i in range(len(c)):
if range(c[i], d[i]+1).count(x): return i
Это код чувака, который хочет получить индекс строки по индексу символа.
>>> get('a\nb', 0) # 0 - позиция символа "а"
0
>>> get('a\nb', 1) # 1 - позиция символа "\n"
0
>>> get('a\nb', 2) # 2 - позиция символа "b" (уже вторая строка)
1
Простой эквивалент кода:
GetNewlineCount = lambda s, p: s.count('\n', 0, p)