reversed array around python

array - Lista inversa de Python



reverse list python (8)

Esta pregunta ya tiene una respuesta aquí:

Estoy intentando invertir una cadena y usar el código siguiente, pero el valor de la lista inversa resultante es Ninguno.

El código:

str_a = ''This is stirng'' rev_word = str_a.split() rev_word = rev_word.reverse() rev_word = ''''.join(rev_word)

Devuelve TypeError . ¿Por qué?


Basado en comentarios y otras respuestas:

str_a = ''this is a string'' rev_word = '' ''.join(reversed(str_a.split()))

El método de encadenamiento funciona en Python después de todo ...


El ciclo for itera la cadena desde el final (última letra) hasta el inicio (primera letra)

>>> s = ''You can try this too :]'' >>> rev = '''' >>> for i in range(len(s) - 1, -1, -1): ... rev += s[i] >>> rev '']: oot siht yrt nac uoY''


Esta es mi forma favorita de invertir una cadena:

stra="This is a string" revword = stra[::-1] print(revword) #"gnirts a si sihT

o, si quieres revertir el orden de las palabras:

revword = " ".join(stra.split()[::-1]) print(revword) #"string a is This"

:)


La lista inversa se puede hacer utilizando más de una forma.
Como se mencionó en las respuestas anteriores, dos son muy prominentes, uno con función reverse() y dos con función slicing. Estoy dando algunas ideas sobre cuál preferiríamos. Siempre debemos usar reverse() función reverse() para revertir una lista de Python. Dos razones, una reversión in situ y dos más rápidas que otras. Tengo algunas cifras para apoyar mi respuesta,

In [15]: len(l) Out[15]: 1000 In [16]: %timeit -n1 l.reverse() 1 loops, best of 3: 7.87 µs per loop In [17]: %timeit -n1 l[::-1] 1 loops, best of 3: 10 µs per loop

Para la lista de 1000 enteros, reverse() función reverse() funciona mejor en comparación con el corte.


Para referencia futura cuando un objeto tiene un método como [].reverse() generalmente realiza esa acción en el objeto (es decir, la lista se ordena y no devuelve nada, ninguno) en contraste con funciones incorporadas como sorted que realizan una acción en un objeto y devuelve un valor (es decir, la lista ordenada)


Varias inversiones en una cadena:

instring = ''This is a string'' reversedstring = instring[::-1] print reversedstring # gnirts a si sihT wordsreversed = '' ''.join(word[::-1] for word in instring.split()) print wordsreversed # sihT si a gnirts revwordorder = '' ''.join(word for word in instring.split()[::-1]) print revwordorder # string a is This revwordandorder = '' ''.join(word[::-1] for word in instring.split()[::-1]) print revwordandorder # gnirts a si sihT


.reverse() devuelve None . Por lo tanto, no debería asignarlo a una variable.

Use esto en su lugar:

stra = ''This is a string'' revword = stra.split() revword.reverse() revword=''''.join(revword)

He ejecutado el código en IDEOne para que pueda ver el resultado. (También stringaisThis cuenta que la salida es stringaisThis ; es posible que desee utilizar '' ''.join(revword) , con un espacio, en su lugar.)

También tenga en cuenta que el método que ha proporcionado solo invierte las palabras , no el texto . @ ron.rothman proporcionó un enlace que detalla cómo invertir una cadena en su totalidad.


>>> s = ''this is a string'' >>> s[::-1] ''gnirts a si siht'' >>> ''''.join(reversed(s)) ''gnirts a si siht''