<jupyter_start><jupyter_text>Recorriendo los elementos de una lista utilizando While<jupyter_code>numeros = [1,2,3,4,5,6,7,8,9,10]
indice = 0
while indice < len(numeros):
    print(numeros[indice])
    indice+=1<jupyter_output>1
2
3
4
5
6
7
8
9
10<jupyter_text>Sentencia For (Para) con listas<jupyter_code>for numero in numeros:  # Para [variable] en [lista]
    print(numero)<jupyter_output>1
2
3
4
5
6
7
8
9
10<jupyter_text>Modificar ítems de la lista al vueloPara asignar un nuevo valor a los elementos de una lista mientras la recorremos, podríamos intentar asignar al número el nuevo valor:<jupyter_code>for numero in numeros:
    numero *= 10
numeros<jupyter_output><empty_output><jupyter_text>Sin embargo, ésto no funciona. La forma correcta de hacerlo es haciendo referencia al índice de la lista en lugar de la variable:<jupyter_code>indice = 0
numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for numero in numeros:
    numeros[indice] *= 10
    indice+=1
numeros<jupyter_output><empty_output><jupyter_text>Podemos utilizar la función enumerate() para conseguir el índice y el valor en cada iteración fácilmente:<jupyter_code>numeros = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for indice,numero in enumerate(numeros):
    numeros[indice] *= 10
numeros<jupyter_output><empty_output><jupyter_text>For con cadenas<jupyter_code>cadena = "<NAME>"
for caracter in cadena:
    print(caracter)<jupyter_output>H
o
l
a
 
a
m
i
g
o
s<jupyter_text>Pero debemos recordar que las cadenas son inmutables:<jupyter_code>for i,c in enumerate(cadena):
    cadena[i] = "*"<jupyter_output><empty_output><jupyter_text>Sin embargo siempre podemos generar una nueva cadena:<jupyter_code>cadena2 = ""
for caracter in cadena:
    cadena2 += caracter * 2
cadena
cadena2<jupyter_output><empty_output><jupyter_text>La función range()Sirve para generar una lista de números que podemos recorrer fácilmente, pero no ocupa memoria porque se interpreta sobre la marcha:<jupyter_code>for i in range(10):
    print(i)
range(10)
for i in [0,1,2,3,4,5,6,7,9]:
    print(i)<jupyter_output>0
1
2
3
4
5
6
7
9<jupyter_text>Si queremos conseguir la lista literal podemos transformar el range a una lista:<jupyter_code>list(range(10))<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.09661399548532731, 'fraction_numerical': 0.04198645598194131, 'mean_word_length': 5.968553459119497, 'pattern_counts': {'":': 0, '<': 39, '<?xml version=': 0, '>': 38, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '10', 'dir': 'jupyter-structured-clean-dedup', 'id': '283267', 'license': 'MIT', 'n_tokens_mistral': 941, 'n_tokens_neox': 905, 'n_words': 250, 'path': 'MaterialCursoPython/Fase 1 - Fundamentos de programacion/Tema 03 - Controlando el flujo/Apuntes/Leccion 3 (Apuntes) - Sentencia For.ipynb', 'repo_name': 'mangrovex/CursoPython', 'size': '2220'}