Apuntes_Python/02_conceptos/19_asterisk_operator
2024-01-16 12:23:41 -03:00
..
op_asterisco.py init Apuntes Python 2022-12-24 22:41:20 -03:00
README.md ed: domain links on files <kickto.net >letz.dev 2024-01-16 12:23:41 -03:00

Operador *

Casos de uso


Multiplicación

resultado = 5 * 5

print(resultado)
# 25

Potencia

resultado = 2 ** 3
print(resultado)    # 8

Crear lista con elementos repetidos

lista = [0, 1] * 10
print(lista)        # [0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

Crear tupla con elementos repetidos

tupla = (0, 1) * 10
print(tupla)        # (0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
 

Crear string con elementos repetidos

cadena = "ER" * 10
print(cadena)       # ERERERERERERERERERER

# *args, **kwargs y parametros llave valor (keywords)
def foo(a, b , *args, **kwargs):
    print(a)
    for arg in args:
        print(arg)
    for key in kwargs:
        print(key, kwargs[key])

foo(1,2,3,4,5,seis=6, siete="siete")
# 1
# 3
# 4
# 5
# seis 6
# siete siete

Desempaquetando lista y tupla en argumentos de funcion

def boo(a, b, c):
    print(a, b, c)

lista = [0, 1, 2]
boo(*lista)         # 0 1 2

tupla = (0, 1, 2)
boo(*tupla)         # 0 1 2  

#### Desempaquetando diccionario en argumentos de funcion  

```python
diccionario = {'a':1, 'b':2, 'c':'tres'}

boo(**diccionario)  # 1 2 tres

Desempaquetando contenedor

Desempaqueta elementos (lista, tupla o set), en elementos simples o multiples.

numeros = [1, 2, 3, 4, 5, 6]
*comienzo, ultimo = numeros

Lista con todos los elementos excepto el ultimo

print(comienzo)     # [1, 2, 3, 4, 5]

Ultimo elemento de la lista

print(ultimo)
# 6

Siempre desempaqueta como lista

numeros = (1, 2, 3, 4, 5, 6)

comienzo, *ultimos = numeros

print(comienzo)
# 1
print(ultimos)
# [2, 3, 4, 5, 6]

Desempaquetado en medio

primero, segundo, *intermedios, penultimo, ultimo = numeros

print(primero)
# 1
print(segundo)
# 2
print(intermedios)
# [3, 4]
print(penultimo)
# 5
print(ultimo)
# 6

Fusionando contenedor en una lista, tupla y set

lista = [1,2,3]
tupla = (4,5,6)
set_ = {7,8,9}

lista2 = [*lista, *tupla, *set_]
tupla2 = (*lista, *tupla, *set_)
set_2 = {*lista, *tupla, *set_}

print(lista2)
# [1, 2, 3, 4, 5, 6, 8, 9, 7]

print(tupla2)
# (1, 2, 3, 4, 5, 6, 8, 9, 7)

print(set_2)
# {1, 2, 3, 4, 5, 6, 7, 8, 9}

Fusionando diccionarios

dicc_a = {'a':1, 'b':2}
dicc_b = {'c':3, 'd':4}
dicc_c = {**dicc_a, **dicc_b}

print(dicc_c)
# {'a': 1, 'b': 2, 'c': 3, 'd': 4}