Python Quiz 1 – Asignación de Slicing en listas en Python

PyQuiz 1 - asignaciones en slices

Pregunta principal del pyquiz:

>>> lst = ['h', 34, 2.3]
>>> lst[2:5] = ['pepe']
>>> print(lst)
- ?? -
# A - AttributeError
# B - ['h', 34, 'pepe']
# C - ['h', 34, 2.3]

Concepto y explicación

En esta pregunta se hace una asignación de una lista sobre una sublista inicial (slicing)

La sublista comprende sólo el elemento 2.3:

>>> lst = ['h', 34, 2.3]
>>> lst[2:5]
[2.3]
>>> lst[5]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

Conceptos aplicados:

  • La sublista comprendida entre los elementos 2 y 5 es solo [2.3].
  • Python soporta que los índices estén fuera del rango permitido. Aunque haya solo 3 elementos, se puede intentar acceder a un rango superior de 3 cuando se hace slicing.
  • Si se intenta acceder al elemento 5, provoca un error dado que sólo hay 3 elementos en la lista.

Dado que el único elemento del slicing es 2.3, se le asigna a la lista que lo envuelve la lista ['pepe'], quedando como resultado el siguiente:

>>> lst[2:5]
[2.3]
>>> lst[2:5] = ['pepe']
>>> lst
['h', 34, 'pepe']

Solución

Por tanto la solución correcta es la B, en dado que el elemento 3 ([2.3]) es reemplazado por la lista ['pepe'].

B) [‘h’, 34, ‘pepe’]




Libros recomendados para aprender Python

Estos son los libros que pueden ayudarte a aprender Python, aprender a programar, tipos de datos, algoritmia y mucho más.

Libro Python a fondo Disponible en:

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicar un comentario