¿Cuál es la forma más eficaz de Iterar, mientras que la manipulación de una lista o una cadena?

Tracy:

Mi objetivo es crear un descifrador de códigos en Python. Hasta ahora he embarullado encima de las letras y como resultado tienen una lista de caracteres individuales.

#Result of inputting the string 'hello world'
['C', 'V', 'N', 'N', 'H', 'X', 'H', 'K', 'N', 'O']

Mi objetivo es la producción de este como una cadena con un espacio 'CVNNH XHKNO'

Ahora tengo varias opciones, pero estoy seguro de cuál sería el mejor: puedo convertir en una cadena antes de manipularla o manipular la lista antes de convertirlo en una cadena.

Tengo las siguientes ayudantes disponibles desde el proceso hasta el momento (de forma automática)

length = [5,5] #list
total_chars = 10 #int
no_of_words = 2 #int

He convertido a una cadena de CVNNHXHKNO y pensó en insertar el espacio después de la quinta carta mediante el cálculo de un punto de inicio [0], el punto medio [5] y el punto final [11].

start = 0
mid_point = total_chars - length[0]

print(mid_point)
first_word = message[start:mid_point]
print(first_word)

second_word = message[mid_point:total_chars]
print(second_word)

completed_word = first_word + ' ' + second_word
print(completed_word)

Por desgracia esto es sólo manualmente y no toma en cuenta si existe un 5 o más palabras. He tratado de iterar sobre la lista original de caracteres individuales de bucles for anidados utilizando la longitud de la lista, pero parecen confundir a mí mismo y pensar demasiado.

adnanmuttaleb:

Si usted tiene esto como entradas:

l = ['C', 'V', 'N', 'N', 'H', 'X', 'H', 'K', 'N', 'O']
length = [5,5] #list
total_chars = 10 #int
no_of_words = 2 #int

A continuación, puede calcular su salida de la siguiente manera:

words = []
pos = 0
for i in length:
  words.append("".join(l[pos:pos+i]))
  pos += i

result = " ".join(words)

print(words)
print(result)

Salida:

['CVNNH', 'XHKNO']
CVNNH XHKNO

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=399145&siteId=1
Recomendado
Clasificación