Resolvendo string dividida em python sem o uso da função split ()
Enfrentou uma pergunta de entrevista em Python que era a seguinte?
ex:
input = ('192.168.15.1', '.', -1) ===> output = (192, 168, 15, 1)
input = ('192.168.15.1', '.', 2) ===> output = ( 192, 168, 15.1 )
Resolva de forma que a entrada (sequência, caractere, número inteiro) forneça a saída de forma que a sequência seja dividida pelo caractere e se o número inteiro for 0 ou menor que o resto da sequência, o número de caracteres por onde a divisão de caracteres ocorre apenas para o valor de inteiro.
Eu escrevi o código, embora ele funcione bem dentro dos limites e sem condição de erro. Existe um código melhor lá fora, por favor, compartilhe.
obrigado
def split_string(string,ch,inte):
q = string
c = ch
i = inte
s =list(q)
#Check if integer value is negative or positive
if i <= 0:
# split the string one time
r1 = split_once(s,c)
print r1
else:
#split according to the integear value
r2 = split_acc_intger(s,c,i)
print r2
def split_once(s,c):
y = 0
d = []
for x in range(len(s)):
if s[x] == c:
p=s[y:x]
d.append(''.join(p))
y = x + 1
elif x == len(s)-1:
p=s[y:]
d.append(''.join(p))
return d
def split_acc_intger(s,c,i):
y = 0
d =[]
count = 1
for x in range(len(s)):
# the leat number will 1
if s[x] == c:
p=s[y:x]
d.append(''.join(p))
y = x + 1
count += 1
elif count == i :
p=s[y:]
d.append(''.join(p))
break
return d