Python – Troceando y recomponiendo strings

Objetivo: presentar los métodos split() y join() para descomponer y recomponer strings, respectivamente.

Voy a enseñarte un sencillo truco de magia que puedes agregar a tu kit de herramientas en Python y que sin duda te será de gran utilidad en tu día a día como programador.

Para ello voy a necesitar tu colaboración. Confía en mí y déjame un billete, el de más valor que tengas. Ese mismo de color púrpura, por ejemplo, servirá.

>>> billete = 'Esto es un billete de 500 euros'

(No he visto un billete de 500 euros en mi vida. He tenido que recurrir a la wikipedia para consultar su color).

Ahora voy a romperlo delante de tus narices:

>>> trocitos_de_billete = billete.split()
>>> trocitos_de_billete
['Esto', 'es', 'un', 'billete', 'de', '500', 'euros']

O al menos lo era.

El método split(), aplicado a un string, crea una lista en la que cada elemento es una palabra del string. Como si de una butifarra se tratase, split() ha troceado la cadena de caracteres en sus palabras individuales y las ha guardado en una lista.

El modo de reconocer donde acaba y empieza una palabra es obvio: no tiene más que localizar cada espacio en blanco de separación y romper ahí.

Lo interesante de split() es que no le importa si hay más espacios en blancos de los debidos:

>>> dicho = 'Las palabras se las lleva el              viento'
>>> dicho.split()
['Las', 'palabras', 'se', 'las', 'lleva', 'el', 'viento']

Ni siquiera si esos espacios son tabuladores o saltos de línea:

>>> misterio = 'Dónde\testán\t\tlas llaves\nmatarile\nmatarile'
>>> print(misterio)
Dónde  están    las llaves
matarile
matarile
>>> 
>>> misterio.split()
['Dónde', 'están', 'las', 'llaves', 'matarile', 'matarile']

Para él es como si fueran un único espacio.

El método split() nos permite ciertas opciones de juego. Podemos, por ejemplo, indicar que el separador sea otro en lugar del espacio en blanco:

>>> gazpacho = 'tomate-pepino-pimiento-aceite-vinagre'
>>> gazpacho.split('-')
['tomate', 'pepino', 'pimiento', 'aceite', 'vinagre']

Algo que no tiene por qué limitarse a un único carácter:

>>> extensiones = '201abc202abc203'
>>> extensiones.split('abc')
['201', '202', '203']

También podemos precisar el número de veces que meteremos el cuchillo:

>>> python = '1 Python Programas Generador de claves aleatorias'
>>> python.split(' ', 3)
['1', 'Python', 'Programas', 'Generador de claves aleatorias']

Observa que, al necesitar el segundo parámetro, me he visto obligado a indicar el primero, el separador.

Pero podría haberlo obviado del siguiente modo:

>>> python.split(maxsplit = 3)
['1', 'Python', 'Programas', 'Generador de claves aleatorias']

Planteemos ahora el problema inverso: dada una lista de strings, fusionarla en una única cadena empleando determinado carácter como separador.

Los objetos de tipo string disponen de un método que logra precisamente eso: join().

Percátate de una sutileza en la frase anterior: he dicho que el método join() es propio del tipo string y no del tipo list. Por lo tanto no se puede aplicar sobre una lista sino sobre un string.

Entonces, si disponemos de dos elementos, la lista que queremos concatenar y el separador, ¿sobre cuál de ellos aplicaremos el join()? Sobre el separador, no hay otra opción, facilitando como argumento la lista.

>>> estaciones = ['Primavera', 'Verano', 'Otoño', 'Invierno']
>>> ' '.join(estaciones)
'Primavera Verano Otoño Invierno'

El separador puede ser cualquier string, obviamente:

>>> ' <---> '.join(estaciones)
'Primavera <---> Verano <---> Otoño <---> Invierno'

Volvamos entonces a nuestro truco de magia, con el billete de quinientos euros destrozado:

>>> trocitos_de_billete
['Esto', 'es', 'un', 'billete', 'de', '500', 'euros']

Reconstruirlo es tan simple como esto:

>>> billete_reconstruido = ' '.join(trocitos_de_billete)
>>> billete_reconstruido
'Esto es un billete de 500 euros'

Naturalmente, todo ha sido un truco. Aunque me vieras romper el billete delante de tus narices, eso nunca sucedió. El billete original, como en todos los buenos trucos, nunca sufrió daño alguno:

>>> billete
'Esto es un billete de 500 euros'

Javier Montero Gabarró


Python – Troceando y recomponiendo strings


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Consulta el índice completo de artículos relacionados con Python.

El intervalo de tono en la guitarra

Objetivo: familiarizarse con el intervalo de tono (segunda mayor) en todas sus posiciones.

Utilizando la misma metodología empleada al presentar el intervalo de semitono en la guitarra, vamos a dar un paso adelante para familiarizarnos con la distancia de tono, equivalente a una segunda mayor. Es importante que no nos quedemos con los meros patrones visuales, sino que debemos trabajar para que nuestros dedos memoricen el sonido de ese intervalo, de modo que puedan localizarlo en el instrumento con poca o nula participación consciente.

El trabajo teórico es bien simple: un tono es lo mismo que dos semitonos. Por lo tanto, si al intervalo de semitono, que ya conocemos, le agregamos un segundo semitono, obtenemos la distancia buscada.

Recordemos las distintas posibilidades de obtener la distancia de semitono en la guitarra:

Sobre la misma cuerda:

Entre dos cuerdas adyacentes (distintas de tercera y segunda):

Entre la tercera y segunda cuerdas:

Resulta obvio deducir, entonces, el intervalo de tono: basta con acercar la nota más aguda un traste más hacia el puente de la guitarra.

Sobre la misma cuerda, sea la que sea:

tono-1

Entre cuerdas adyacentes (distintas de tercera y segunda):

tono-2

Como ves, resulta más sencillo de producir (una apertura natural de cuatro trastes) que el semitono (extensión de 5 trastes).

Entre la tercera y segunda cuerdas, apertura fácil de tres trastes:

tono-3

Llegado el momento presentaremos también el intervalo de tres semitonos, pues hay escalas, como la menor armónica o las pentatónicas, que hacen uso de él.

¿Qué utilidad inmediata le vamos a dar a todo esto?

Si nos sentimos cómodos dibujando tonos y semitonos en la guitarra podremos inventarnos nuestros propios patrones libres a la hora de construir cualquier escala cuya fórmula absoluta conozcamos.

Toma ahora forma la idea con la que escribí el artículo dedicado a la escala cromática, al que ahora continuará otro relativo a la escala de tonos enteros en libertad. Constituyen los cimientos sobre los que alzaremos nuestras escaleras al cielo.

Javier Montero Gabarró


http://elclubdelautodidacta.es/wp/2013/10/el-intervalo-de-tono-en-la-guitarra/


El texto de este artículo se encuentra sometido a una licencia Creative Commons del tipo CC-BY-NC-ND (reconocimiento, no comercial, sin obra derivada, 3.0 unported)


El Club del Autodidacta


Artículo anterior de la categoría Guitarra.


Índice de la categoría Guitarra.

Índice de la categoría Armonía.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies