right part from ejemplo python basic

part - python substring from position



Python: ¿Hay un equivalente de mid, right y left de BASIC? (6)

Quiero hacer algo como esto:

>>> mystring = "foo" >>> print(mid(mystring))

¡Ayuda!


Esta es la solución de Andy. Acabo de dirigirme a la preocupación de User2357112 y le di nombres de variables significativos. Soy un novato de Python y preferí estas funciones.

def left(aString, howMany): if howMany <1: return '''' else: return aString[:howMany] def right(aString, howMany): if howMany <1: return '''' else: return aString[-howMany:] def mid(aString, startChar, howMany): if howMany < 1: return '''' else: return aString[startChar:startChar+howMany]


Funcionan muy bien para leer los caracteres "n" de izquierda / derecha de una cadena, pero, al menos con BBC BASIC, las funciones LEFT$() y RIGHT$() le permiten cambiar los caracteres de "n" izquierda / derecha .. .

P.ej:

10 a$="00000" 20 RIGHT$(a$,3)="ABC" 30 PRINT a$

Produciría

00ABC

Edit: desde que escribí esto, he encontrado mi propia solución ...

def left(s, amount = 1, substring = ""): if (substring == ""): return s[:amount] else: if (len(substring) > amount): substring = substring[:amount] return substring + s[:-amount] def right(s, amount = 1, substring = ""): if (substring == ""): return s[-amount:] else: if (len(substring) > amount): substring = substring[:amount] return s[:-amount] + substring

Para devolver n caracteres que llamarías

substring = left(string,<n>)

Donde el valor predeterminado es 1 si no se suministra. Lo mismo es cierto para el derecho ()

Para cambiar los n caracteres a la izquierda o derecha de una cadena a la que llamarías

newstring = left(string,<n>,substring)

Esto tomaría los primeros n caracteres de la subcadena y sobrescribiría los primeros n caracteres de la cadena, devolviendo el resultado en newstring. Lo mismo funciona para right ().


Gracias Andy W

Encontré que el mid () no funcionó como esperaba y modifiqué lo siguiente:

def mid(s, offset, amount): return s[offset-1:offset+amount-1]

Realicé la siguiente prueba:

print(''[1]23'', mid(''123'', 1, 1)) print(''1[2]3'', mid(''123'', 2, 1)) print(''12[3]'', mid(''123'', 3, 1)) print(''[12]3'', mid(''123'', 1, 2)) print(''1[23]'', mid(''123'', 2, 2))

Lo que resultó en:

[1]23 1 1[2]3 2 12[3] 3 [12]3 12 1[23] 23

Que era lo que esperaba. El código mid () original produce esto:

[1]23 2 1[2]3 3 12[3] [12]3 23 1[23] 3

Pero las funciones izquierda () y derecha () funcionan bien. Gracias.


Puedes usar este método también actuará así.

thadari=[1,2,3,4,5,6] #Front Two(Left) print(thadari[:2]) [1,2] #Last Two(Right) print(thadari[:-2]) [5,6] #mid mid = len(thadari) //2 lefthalf = thadari[:mid] [1,2,3] righthalf = thadari[mid:] [4,5,6]

Espero que ayude



rodajas al rescate :)

def left(s, amount): return s[:amount] def right(s, amount): return s[-amount:] def mid(s, offset, amount): return s[offset:offset+amount]