tiflolinux.org - GNU Social
  • Login

Bienvenido

  • Public

    • Public
    • Network
    • Groups
    • Popular
    • People

Conversation

Notices

  1. Victorhck (victorhck@mastodon.social)'s status on Sunday, 19-Mar-2023 20:37:17 CET Victorhck Victorhck

    Pregunta de novatísimo en #Python de una cosa que no entiendo:

    En este programilla:
    c1 = ["X","R","G"]
    interm = c1.reverse()

    print(c1)
    c1.reverse()
    print(c1)
    print(interm)

    --------------------
    ¿Por qué imprimir interm me muestra None y no la lista invertida como en el anterior print?

    ['G', 'R', 'X']
    ['X', 'R', 'G']
    None

    In conversation Sunday, 19-Mar-2023 20:37:17 CET from mastodon.social permalink
    • Victorhck (victorhck@mastodon.social)'s status on Sunday, 19-Mar-2023 20:42:39 CET Victorhck Victorhck
      in reply to
      • Saci Pererê!

      @saci y eso significa... ¿y cómo puedo hacer que no me muestre None?

      In conversation Sunday, 19-Mar-2023 20:42:39 CET permalink
    • Saci Pererê! (saci@bantu.social)'s status on Sunday, 19-Mar-2023 20:42:40 CET Saci Pererê! Saci Pererê!
      in reply to

      @victorhck creo que reverse tiene efecto "inplace" asi retorna None, pero el objecto originao si esta modificado.

      In conversation Sunday, 19-Mar-2023 20:42:40 CET permalink
    • Saci Pererê! (saci@bantu.social)'s status on Sunday, 19-Mar-2023 20:47:33 CET Saci Pererê! Saci Pererê!
      in reply to

      @victorhck reversed(c1)

      In conversation Sunday, 19-Mar-2023 20:47:33 CET permalink
    • Victorhck (victorhck@mastodon.social)'s status on Sunday, 19-Mar-2023 20:47:33 CET Victorhck Victorhck
      in reply to
      • Saci Pererê!

      @saci nop

      In conversation Sunday, 19-Mar-2023 20:47:33 CET permalink
    • Saci Pererê! (saci@bantu.social)'s status on Sunday, 19-Mar-2023 20:50:01 CET Saci Pererê! Saci Pererê!
      in reply to

      @victorhck

      "The reverse() method modifies the sequence in place for economy of space when reversing a large sequence. To remind users that it operates by side effect, it does not return the reversed sequence."

      https://docs.python.org/3.8/library/stdtypes.html#list

      In conversation Sunday, 19-Mar-2023 20:50:01 CET permalink
    • Victorhck (victorhck@mastodon.social)'s status on Sunday, 19-Mar-2023 20:50:01 CET Victorhck Victorhck
      in reply to
      • Saci Pererê!

      @saci sí, lo consulté, pero no entendí a qué se refería....

      In conversation Sunday, 19-Mar-2023 20:50:01 CET permalink
    • Victorhck (victorhck@mastodon.social)'s status on Sunday, 19-Mar-2023 20:55:29 CET Victorhck Victorhck
      in reply to
      • Saci Pererê!

      @saci epa!! eso sí!!!

      Me lo puedes explicar un poco para torpes? Qué hace de distinto? Sí, devuelve un iterator y expande una lista... pero ni idea...
      (si no te apetece, no hace falta que contestes, que no querrás perder tiempo en esto...)

      Muchas gracias!!!

      In conversation Sunday, 19-Mar-2023 20:55:29 CET permalink
    • Saci Pererê! (saci@bantu.social)'s status on Sunday, 19-Mar-2023 20:55:31 CET Saci Pererê! Saci Pererê!
      in reply to

      @victorhck perdon, retorna un iterator, asi tiene que expandir la lista.

      c2 = reversed(c1)
      print(list(c2))

      In conversation Sunday, 19-Mar-2023 20:55:31 CET permalink
    • Saci Pererê! (saci@bantu.social)'s status on Sunday, 19-Mar-2023 20:55:31 CET Saci Pererê! Saci Pererê!
      in reply to

      @victorhck mejor

      c2 = list(reversed(c1))

      In conversation Sunday, 19-Mar-2023 20:55:31 CET permalink
    • Evilham :antifa: (evilham@chaos.social)'s status on Sunday, 19-Mar-2023 20:58:03 CET Evilham :antifa: Evilham :antifa:
      in reply to
      • Saci Pererê!

      @victorhck @saci ei, tiene que ver con temas de eficiencia y etc. el tema es que las listas y los diccionarios se usan muchisimo, y en cosas grandes se nota la diferencia.

      In conversation Sunday, 19-Mar-2023 20:58:03 CET permalink
    • Evilham :antifa: (evilham@chaos.social)'s status on Sunday, 19-Mar-2023 20:58:03 CET Evilham :antifa: Evilham :antifa:
      in reply to
      • Saci Pererê!

      @victorhck @saci
      Imagínate cada entrada de la lista como una hoja A4, y las tienes todas una al lado de la otra (la lista).

      Si las tienes que ordenar: coges las hojas, las mueves, intercambias y etc, y ya lo tienes, sin usar hojas nuevas. Esto es a lo que se refieren con "in-place/in-situ", no usas memoria adicional.

      In conversation Sunday, 19-Mar-2023 20:58:03 CET permalink
    • Victorhck (victorhck@mastodon.social)'s status on Sunday, 19-Mar-2023 20:58:03 CET Victorhck Victorhck
      in reply to
      • Evilham :antifa:
      • Saci Pererê!

      @evilham Muchas gracias!!! @saci

      In conversation Sunday, 19-Mar-2023 20:58:03 CET permalink
    • Victorhck (victorhck@mastodon.social)'s status on Sunday, 19-Mar-2023 21:10:22 CET Victorhck Victorhck
      in reply to
      • Evilham :antifa:
      • Saci Pererê!

      @evilham @saci joer cuanto sabéis!!! :)
      Lo tendré que releer un par de veces para entenderlo!!!

      Muchas gracias por vuestro tiempo y conocimiento!!! :)

      In conversation Sunday, 19-Mar-2023 21:10:22 CET permalink
    • Evilham :antifa: (evilham@chaos.social)'s status on Sunday, 19-Mar-2023 21:10:23 CET Evilham :antifa: Evilham :antifa:
      in reply to
      • Saci Pererê!

      @victorhck @saci
      Ahora, imaginate que tienes que generar una copia ordenada: tienes que ir a buscar otras hojas A4, que tengas suficiente, tal vez hacer espacio en la mesa, ir copiando cada hoja original una a una y poniéndolas en su sitio las nuevas.
      Bastante más trabajoso.

      In conversation Sunday, 19-Mar-2023 21:10:23 CET permalink
    • Evilham :antifa: (evilham@chaos.social)'s status on Sunday, 19-Mar-2023 21:10:23 CET Evilham :antifa: Evilham :antifa:
      in reply to
      • Saci Pererê!

      @victorhck @saci
      Con esto en mente:

      c1 = ["X","R","G"]
      interm = c1.reverse()

      Aquí: c1 es reordenada, sin ir a buscar más hojas A4, esla misma lista.

      Imaginemos que interm tiene como valor ["G", "R", "X"]. Qué tiene que significar esta línea?

      interm[0] = "A"

      Esperarías que sólo afecte a interm, pero como sólo hay una copia de tu lista, no es verdad, afecta también a c1. Es decir, c1 e interm son como flechitas apuntando a la misma lista, con las mismas hojas A4!

      In conversation Sunday, 19-Mar-2023 21:10:23 CET permalink
    • Evilham :antifa: (evilham@chaos.social)'s status on Sunday, 19-Mar-2023 21:10:23 CET Evilham :antifa: Evilham :antifa:
      in reply to
      • Saci Pererê!

      @victorhck @saci
      como generar cada vez una lista nueva sería costoso, y retornar la misma lista lleva a este tipo de incongruencias, el c1.reverse() mejor no retorna nada!

      Cualquier función en Python sin un valor explícito retornado, realmente te está retornando None, de aquí que veas que interm tiene como valor None.

      In conversation Sunday, 19-Mar-2023 21:10:23 CET permalink
    • Evilham :antifa: (evilham@chaos.social)'s status on Sunday, 19-Mar-2023 21:10:23 CET Evilham :antifa: Evilham :antifa:
      in reply to
      • Saci Pererê!

      @victorhck @saci
      Si lo que quieres es una copia nueva al reves, como alguien te mencionó, puedes usar:
      interm = list(reversed(c1))

      El reversed genera un "iterator" que te va dando la lista de derecha a izquierda, es útil porque tampoco hace copia de las hojas A4, simplemente te las va pasando al revés.

      Con "list", sí que decimos "oye, esto quiero guardarlo, copiamelo".

      Y aquí interm[0] = "A" no afectaría a c1 :-)

      In conversation Sunday, 19-Mar-2023 21:10:23 CET permalink

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

tiflolinux.org - GNU Social is a social network, courtesy of tiflolinux.org. It runs on GNU social, version 2.0.1-beta0, available under the GNU Affero General Public License.

Creative Commons Attribution 3.0 All tiflolinux.org - GNU Social content and data are available under the Creative Commons Attribution 3.0 license.