<jupyter_start><jupyter_text>Sobre el futuro de map, filter, reduce y lambda All Things Pythonic: The fate of reduce() in Python 3000 by <NAME>, March 10, 2005http://www.artima.com/weblogs/viewpost.jsp?thread=98196 ```lambda argument_list: expression```<jupyter_code>sum_lambda = lambda x, y : x + y
sum_lambda(5,)
# def sum_def
def sum_function(x, y):
    return x+ y
sum_function(5, 8)
print(type(sum_lambda))
print(type(sum_function))<jupyter_output><class 'function'>
<class 'function'><jupyter_text>List Comprehensionhttps://docs.python.org/3/tutorial/datastructures.html ``` nueva_lista = [x for x in iterable]```<jupyter_code>letras_ciencia_set = set([letra for letra in 'Ciencia de datos ABCHJAASAS|'])
print(letras_ciencia_set)
letras_ciencia_lc = [letra for letra in 'Ciencia de datos ABCHJAASAS|']
print(letras_ciencia_lc)
letras_ciencia = []

for simbolo in 'Ciencia de datos ABCHJAASAS|':
    letras_ciencia.append(simbolo)
    
print(letras_ciencia)

aaa = 'asd'<jupyter_output>['C', 'i', 'e', 'n', 'c', 'i', 'a', ' ', 'd', 'e', ' ', 'd', 'a', 't', 'o', 's', ' ', 'A', 'B', 'C', 'H', 'J', 'A', 'A', 'S', 'A', 'S', '|']<jupyter_text>Condicionales<jupyter_code>tupla_lugares = ('cafeteria', 'biblioteca', 'rectoria', 'estacionamiento')
lista_lugares = [lugar for lugar in tupla_lugares if lugar != 'rectoria']
lista_lugares<jupyter_output><empty_output><jupyter_text>Operadores Matemáticos<jupyter_code>lista_numero_mas_dos = [numero  + 2 for numero in range(10) if numero % 2 == 0]
lista_numero_mas_dos
lista_numero = [numero for numero in range(11)]

print(lista_numero)<jupyter_output>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]<jupyter_text>Agregamos la condicion:<jupyter_code>lista_numero_condicion = [numero for numero in range(10) if numero % 2 == 0]
lista_numero_condicion<jupyter_output><empty_output><jupyter_text>Incrementando dos enteros más:<jupyter_code>lista_numero_mas_dos = [numero  + 2 for numero in range(10) if numero % 2 == 0]

print(lista_numero_mas_dos)<jupyter_output>[2, 4, 6, 8, 10]<jupyter_text>Generar una lista de números donde obtengamos el cuadrado de cada valor, si originalmente es impar dentro del rango 0-99<jupyter_code>lista_cuadrados = [numero_impar ** 2 for numero_impar in range(100) if numero_impar % 2 != 0]
lista_cuadrados<jupyter_output><empty_output><jupyter_text>Elementos anidados<jupyter_code>## Generar una nueva lista con elementos divisibles por 3 y 5 en el rango 0-99

lista_numeros_35 = [num for num in range(100) if num % 3 == 0 if num % 5 == 0 if num % 2 != 0]
print(lista_numeros_35)
lista_numeros_35 = []

for num in range(100):
    # if <expresion> True >>
    if num % 3 ==0: 
        if num % 5 == 0:
            if num % 2 != 0:
                lista_numeros_35.append(num)
            
print(lista_numeros_35)<jupyter_output>[15, 45, 75]<jupyter_text>nested loops<jupyter_code>lista_loops = []


for numero_prim_dimension in [20, 30, 60, 80]:
    for numero_seg_dimension in [2, 3, 6, 8]:
        for n in range(9):
            lista_loops.append(numero_prim_dimension * numero_seg_dimension + n)
print(lista_loops)
# num_prim_dimension = n1
# num_seg_dimension = n2
lista_loops = [n1 * n2 + n3 for n1 in [20, 30, 60, 80] for n2 in [2, 3, 6, 8] for n3 in range(9)]

print(lista_loops)
# Comprension de listas sobre un DataFrame de Pandas
import pandas as pd<jupyter_output><empty_output><jupyter_text>Crear un DF dummy con 3 Columnas:- Nombre - Semestre - Final Y 5 renglones<jupyter_code>data_dict = {
    'nombre': [ 'Sergio', 'Vladimir', 'Tania', 'Elsy', 'Oktavia'],
    'semestre': [1, 1, 3, 5, 5],
    'final': [7.5, 8, 9, 8.2, 4]
}
df = pd.DataFrame(data_dict)
df = df[['nombre', 'semestre', 'final']]
df
# Loop
sig_sem = []

for renglon in df['semestre']:
    sig_sem.append(renglon + 1)
    
df['sig_semestre_loop'] = sig_sem
# list comprehension

df['semestre_lc'] = [renglon + 1 for renglon in df['semestre']]
df
!wget https://gist.githubusercontent.com/israelzuniga/bef0001668c2bab3c3686db3759f0faa/raw/2ec658da4eeb21b86369644d3efeb40617aa5fa1/EDA_24Jun.ipynb<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.1384653221839646, 'fraction_numerical': 0.04771273979340875, 'mean_word_length': 5.364632237871675, 'pattern_counts': {'":': 0, '<': 40, '<?xml version=': 0, '>': 42, 'https://': 2, 'lorem ipsum': 0, 'www.': 1, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 3, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '10', 'dir': 'jupyter-structured-clean-dedup', 'id': '250156', 'license': 'MIT', 'n_tokens_mistral': 1799, 'n_tokens_neox': 1669, 'n_words': 393, 'path': 'Python_para_ciencia_de_datos/4ta_clase/8 Julio.ipynb', 'repo_name': 'israelzuniga/spark_streaming_class', 'size': '4080'}