Apuntes_Python/02_conceptos/19_asterisk_operator/op_asterisco.py

109 lines
3.3 KiB
Python
Raw Normal View History

2022-12-24 22:41:20 -03:00
#!/usr/bin/env python
"""
Casos de uso:
- Multiplicacion
- Exponente
- Creacion de listas o tuplas con elementos repetidos
- en *args, **kwargs y parametros llave valor (keywords)
- Desempaquetando listas, tuplas o diccionarios en argumentos de funciones
- Desempaquetando contenedores
- Fusionando contenedor en una lista o diccionario
"""
# multiplicacion
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
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]
# otro ejemplo
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}
if __name__ == '__main__':
main()