miércoles, 29 de agosto de 2018

Generar y ordenar palabras en Python

Reto: Ordenar palabras

Crear una serie de 10 palabras donde sus letras se obtienen de forma aleatoria. Mostrar estas palabras y mostrar esas mismas palabras ordenadas alfabéticamente.



Método 1

Creamos la lista frase que contendrá diez palabras compuestas cada una de ellas por cuatro letras aleatorias. La variable L contienen todo el abecedario en forma de lista. El primer bucle for contiene diez ciclos para generar las diez palabras. En el segundo bucle for es donde generamos cada palabra recogida como string en la variable p. Para ello, se elige aleatoriamente cada letra de la lista L.
Una vez generada la palabra p está se añade a la lista L con append.


import random
frase=[]
L=list('abcdefghijklmnopqrstuvwxyz')
for i in range(0,11):
  p=''
  for j in range(4):
    p+=L[random.randint(0,25)]
  frase.append(''.join(p))
print(frase)
print(sorted(frase))


Método 2

Con este método vamos a crear palabras donde se alternen parejas de consonante y vocal. La variable n contiene el número de parejas elegidas. Si n es tres obtendremos palabras con seis letras. La variable c es un string que contiene las consonantes y la variable v es otra cadena con las vocales. Inicializamos la variable L como lista vacía. Nos metemos en un primer bucle for de diez ciclos para generar las diez palabras. El segundo bucle for añade aleatoriamente una letra consonante y luego una letra vocal para que formen parejas, y se repite n veces.

import random
n=3 # nº de parejas de letras consonante-vocal
c='bcdfghjklmnpqrstvwxyz'
v='aeiou'
L=[]
for i in range(10):
  palabra=''
  for j in range(n):
    palabra+=''.join(random.choice(c))
    palabra+=''.join(random.choice(v))
  L.append(palabra)
print(L)
print(sorted(L))

1 comentario:

  1. que pasa si al imprimir todos lo números son pares? o todos impares. como solucionas eso?

    ResponderEliminar