Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(content): Added content of slicing to python cheatsheet #2

Merged
merged 8 commits into from Aug 29, 2022

Conversation

LucaFedericoMarty
Copy link
Contributor

Agregue contenido a la cheatsheet de Python sobre el mecanismo de slicing en el caso de listas

Source:

https://stackoverflow.com/questions/509211/understanding-slicing

https://www.w3schools.com/python/python_strings_slicing.asp

@vercel
Copy link

vercel bot commented Aug 23, 2022

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated
cheatsheets ✅ Ready (Inspect) Visit Preview Aug 29, 2022 at 8:35PM (UTC)

@JZylber
Copy link
Collaborator

JZylber commented Aug 23, 2022

¡Muy buena contribución! Lo que sí, como con slicing lo que hacés es crear sublistas, no se si lo pondría bajo esa subsección, que está más referido a acceder y asignar elementos de una lista (tal vez habría que mejorar ese título también). Me armaría otro título que sea "Sublistas" (misma jerarquía que acceso y asignación) y puede ir al final de la sección de listas.

Copy link
Collaborator

@JZylber JZylber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Y ya que estoy, molesto un poco con algunos typos. Tanto "siguiente" como "métodos" están mal escritas. También llevan tilde "rápidamente", "posición", "índice" (y sus variaciones) y "último" (y sus variaciones). ¡La explicación está genial! Pero ya que estamos hago un poquito de editor pesado.

@JZylber JZylber added enhancement New feature or request good first issue Good for newcomers labels Aug 24, 2022
Copy link
Owner

@nachovigilante nachovigilante left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Te sugiero los siguientes cambios:

... llama slicing y ...

En esta parte, "slicing" no debería llevar backticks porque no es código. Podrías usar slicing o slicing.

... estructura lista[comienzo:final:instancias]. Si ...

En esta parte, los backticks están bien utilizados, pero el término "instancias" es ambiguo porque se usa para otros conceptos en programación. Yo usaría el término "pasos" o "steps".

... como =, o [...] como += sobre ...

Acá el "=" y el "+=" sí deberían llevar backticks porque representan código.

@LucaFedericoMarty
Copy link
Contributor Author

Ahí hice todos los cambios que me pidieron y agregue lo de los strings, ya que me parecía importante mencionar su posibilidad.

Copy link
Collaborator

@JZylber JZylber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

¡Buenísimos los cambios! Pero tengo unas cosas para que comentar de lo que agregaste de strings. Uy, que pesados, más correcciones.

El problema

Los strings no son listas en Python. Tienen algunos comportamientos parecidos, pero son diferentes en formas bastante fundamentales. Menciono algunas de las más importantes:

  • Los strings son inmutables (no cambian después de su creación), las listas no. Esto tiene como consecuencia por ejemplo que las listas tienen longitud variable mientras que los strings no. Otra consecuencia es que puedo cambiar elementos de una lista, mientras que no puedo hacerlo en un string. Los strings no soportan la operación de asignación.
  • Hay métodos que tienen las listas que no tienen los strings y viceversa. Así como los strings no tienen ni pop ni append, las listas no tienen format por ejemplo. Comparten algunos métodos, pero muchos otros no.
  • Las listas se pasan por referencia mientras los strings por copia. Le tendría que dedicar una subsección entera en funciones explicando esto (y lo voy a hacer eventualmente), pero esto cambia completamente como se comportan frente a funciones.

Fuente: https://developers.google.com/edu/python/strings

Posibles soluciones

¿Bueno y cómo lo arreglamos? Sugiero 2 posibles formas, pero estoy abierto a otras ideas

  1. Mandar el slicing de strings a un lugar exclusivo para strings, compartiendo lugar con otras estucturas de datos. La jerarquía de títulos iría Estructuras Básicas -> Strings -> Substrings. Si, strings quedaría súper pelado, pero un lugar para hablar de strings en python es súper necesario. Nos estaríamos adelantando a futuros agregados del tema.
  2. Mandar slicing entero a su propia sección, fuera de listas y estructuras de básicas. Irían tanto el slicing de listas como el de strings.

Obviamente habría que también cambiar la parte en que afirmás que los strings son y funcionan como listas. ¡Qué pesado Julián! Sólo molesto para que el cheatsheet sea lo más claro posible.
Escribiendo estas sugerencias me inclino más por la 1, pero acepto otras ideas. Desde ya, infinitas gracias por colaborar con estos apuntes.

Si se agregan secciones nuevas, hay que arreglar el índice. En Visual Studio Code se hace automático con el paquete de markdown.
Lo que estaba crasheando el preview era que decía "pyhton" en vez de "python".
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request good first issue Good for newcomers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants