No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Ciclos anidados

34/37
Recursos

Aportes 37

Preguntas 5

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Los ciclos anidados suelen usarse para llenar matrices (un vector de varias dimensiones) donde un ciclo recorre cada fila y otro cada columna o viceversa

Segun el caso, los ciclos anidados yo los asimilo a las mu帽ecas rusas, 鈥淢atrioshkas鈥

Con la premisa que se resuelven de afuera hacia adentro

Como pueden ver el resultado del profe, primero imprimio la 鈥渇ila鈥 y luego la 鈥渃olumna鈥

for row in matriz:
	print(row)
	for column in row:
		print(column) 

'''print
[1, 2, 3]
1
2
3
[4, 5, 6]
4
5
6
[7, 8, 9]
7
8
9
'''

Un reto divertido, espero les guste:

El c贸digo:

def anidado_uno():
    for row in range(1, 12):
        a = ''
        for x in range(1, row):
            a = a + 'x'
        print(a)


def anidado_dos():
    for row in range(1, 12):
        a = 12 - row
        toPrint = ''
        for _ in range(1, a):
            toPrint = toPrint + 'x'
        print(toPrint)


def run():
    anidado_uno()
    print('=='*8)
    anidado_dos()


if __name__ == '__main__':
    run()

Que buena clase! 馃挌

Les comparto el c贸digo

# Ciclos anidados

matriz = [
  [1, 2, 3], 
  [4, 5, 6], 
  [7, 8, 9]
]

# Imprime la primera fila de la matriz
print(matriz[0])

# Imprime el elemento 2 de la primera fila
print(matriz[0][1])

'''
Recorremos las filas de la matriz y por cada fila recorremos cada una de las columnas
'''
for row in matriz:
  print(row)
  for column in row:
    print(column)

MATRIZ : datos organizados
Filas y Columnas

For anidados

Es posible聽anidar聽los聽for, es decir,聽meter uno dentro de otro. Esto puede ser muy 煤til si queremos iterar alg煤n objeto que en cada elemento, tiene a su vez otra clase iterable.

56, 34, 1, 12, 4, 5, 9, 4, 3

Al bucle que se encuentra dentro del otro se le puede denominar bucle interior o bucle interno. El otro bucle ser铆a el bucle exterior o bucle externo.

Es recomendable que los nombres de las variables de control de los bucles anidados no coincidan, para evitar ambig眉edades.

Practicando un poco m谩s:

def run():

    super_list = [
        {"firstname" : "Fabi谩n", "lastname" : "Beltran"},
        {"firstname" : "Maria", "lastname" : "Rivera"},
        {"firstname" : "Karen", "lastname" : "Agredo"},
        {"firstname" : "Zury", "lastname" : "Bele帽o"},
        {"firstname" : "Yuliza", "lastname" : "Mujica"}
    ]

    super_dict = {
        "natural_nums" : [1,2,3,4,5],
        "integer_nums" : [-1,-2,0,1,2],
        "floating_nums": [1.1, 4.5, 6.43, 5.86]
    }

    for key,value in super_dict.items():
        print(key, " - ", value)


    print("\n===========================================\n")

    for a in super_list:
        for k,v in a.items():
            print(k, " - ", v)


    print("\n===========================================\n")

    for a in super_list:
        print(f'{a["firstname"]} {a["lastname"]}')


if __name__ == '__main__':
    run()

Aqui un ejemplo basico utilizando ciclos anidados.
Tabla de multiplicacion del 1 al 10.

for i in range(1, 11):  # Ciclo exterior que itera sobre los n煤meros del 1 al 10
    for j in range(1, 11):  # Ciclo interior que itera sobre los n煤meros del 1 al 10
        resultado = i * j  # Multiplicamos los n煤meros i y j
        print(f"{i} x {j} = {resultado}")  # Imprimimos el resultado

Los ciclos anidados en Python se refieren a la situaci贸n en la que un ciclo est谩 contenido dentro de otro ciclo. Esto significa que hay un bucle interno que se ejecuta repetidamente dentro de un bucle externo.

Los ciclos anidados son 煤tiles cuando se necesita iterar sobre una estructura de datos multidimensional, como una matriz bidimensional o una lista de listas. Con los ciclos anidados, es posible acceder y procesar cada elemento de manera sistem谩tica en una estructura de datos compleja.

se que no tiene nada que ver pero lo quise hacer tambi茅n en c贸digo php.

$arra = [
    [14, 5, 7],
    [18, 4, 1],
    [19, 5, 2]
];

for ($i=0; $i < count($arra) ; $i++) { 
    for ($a=0; $a < count($arra) ; $a++) {
        echo $arra[$i][$a]."<br>";
    }
}

Que buen curso, aprendi un monto con los ejercicios de Playground!!

""" Loops """
matriz = [
  [34, 82, -21],
  [-1, 73, -48],
  [59, 0.3, 13]
]
for i in matriz:
  print(i)

for i in matriz:
  for j in i:
    print(j)
print(matriz[0][2])

print("-" * 35)
matriz_2 = [
  [1,2,3],
  [4,5,6],
  [7,8]
]
for i in matriz_2:
  print(i)

for row in matriz_2:
  for column in row:
    print(column)
# Primer ciclo: Abre la caja grande (3 veces)
for caja_grande in range(3):
    # Segundo ciclo: Abre la cajita peque帽a dentro de la caja grande (2 veces)
    for cajita_peque帽a in range(2):
        # Tercer ciclo: Cuenta las piezas de LEGO en la cajita peque帽a (5 veces)
        for pieza_de_lego in range(5):
            print("隆Encontr茅 una pieza de LEGO!")

# 隆Has contado todas las piezas de LEGO!

Deseas ser :
'Tijera鈥
ecribe s, 贸 n,
y
tu turno鈥ijera

el juego鈥 Papel

GANASTE隆隆隆

import random
i = 0
coin = True

while coin:
  element = [
      ["Piedra", "Papel", "Tijera"],
      [0, 1, 2],
      ]
  select = input("Deseas ser :\n'"+ element[0][i]+"' \necribe s, 贸 n, \n").lower()
  
  if select == "s" or select == "si" or select == "y" or select == "yes":
    player = element[1][i]

    print("tu turno.........."+ element[0][i] )
    print("")
    pc = random.choice(element[1])
    print("\nel juego..........",element[0][pc] )
    print("")
    if player == pc:
      print(" => EMPATE <= ")
      nuevo = input("\nnuevo juego  \necribe s, 贸 n, \n").lower()
      if nuevo == "s" or nuevo == "si" or nuevo == "y" or nuevo == "yes":
        print("\nnueva partida ")
        continue
      else:
        print("\ncerrando juego ")
        coin = False
        break
    if player - 1 == pc or player + 2 == pc:
      print(" GANASTE隆隆隆 ")
      nuevo = input("nuevo juego  \necribe s, 贸 n, \n").lower()
      if nuevo == "s" or nuevo == "si" or nuevo == "y" or nuevo == "yes":
        print("\nnueva partida ")
        continue
      else:
        print("\ncerrando juego ")
        coin = False
    else:
      print("SUERTE PARA LA PROXIMA...")
      nuevo = input("nuevo juego  \necribe s, 贸 n, \n").lower()
      if nuevo == "s" or nuevo == "si" or nuevo == "y" or nuevo == "yes":
        print("\nnueva partida ")
        continue
      else:
        print("\ncerrando juego ")
        coin = False

  else:
    i += 1
    if i == 3:
      i = 0

falto la clase de los conjuntos

No es recomendable anidar ciclos para matrices grandes, para mayor referencia ver la teor铆a de la notaci贸n Big O y las mejores pr谩cticas para el dise帽o de algoritmos.

conocer esto es bueno, aunque no siempre lo vamos a utilizar.

Un ejemplo de loop anidado

for i in range(1, 13):  # Loop exterior para las filas (del 1 al 10)
    for j in range(1, 13):  # Loop interior para las columnas (del 1 al 10)
        resultado = i * j
        print(f"{i} x {j} = {resultado}")
    print('\n ')

import random

while True:
    print("隆Juguemos a ... Piedra, papel o tijera!")
    print("1) Piedra\n2) Papel\n3) Tijera")
    
    # Ingreso de opci贸n para el usuario
    user_option = int(input("驴Cu谩l es tu opci贸n? (Ingresa el n煤mero correspondiente): "))
    
    option_tuple = (1, 2, 3)
    
    # Ingreso de opci贸n de la computadora (n煤mero aleatorio del 1 al 3)
    computer_option = random.choice(option_tuple)
    
    # Computadora saca esta opci贸n.
    print("La computadora saca:", computer_option)
    
    # Evaluamos con if
    if user_option == computer_option:
        print("隆Empate!, wow, empataste a la computadora")
    elif user_option == 1 and computer_option == 2:
        print("隆Pierdes!... Computadora saca papel, papel envuelve piedra.")
    elif user_option == 1 and computer_option == 3:
        print("隆Ganas!... Computadora sac贸 tijera, piedra rompe tijera.")
    elif user_option == 2 and computer_option == 1:
        print("隆Ganas!... Computadora sac贸 piedra, papel envuelve a la piedra.")
    elif user_option == 2 and computer_option == 3:
        print("隆Pierdes!... Computadora 1sac贸 tijera, tijera rompe papel.")
    elif user_option == 3 and computer_option == 1:
        print("隆Pierdes!... Computadora sac贸 piedra, piedra rompe tijera.")
    elif user_option == 3 and computer_option == 2:
        print("隆Ganas!... Computadora sac贸 papel, tijera rompe papel.")
    else:
        print("Elige una opci贸n v谩lida, 隆int茅ntalo de nuevo!")
    
    play_again = input("驴Quieres jugar de nuevo? (s/n): ")
    
    if play_again.lower() != 's':
        print("Gracias por jugar. 隆Hasta luego!")
        break

Algo divertudi que se puede hacer.

x = 0
for row in range(1,12):
    x += 1
    col = "x" * row
    print(col)
    
y = 12
for colum in range(1, 12):
    y -= 1
    col = "x" * y
    print(col)

No termino entendiendo mucho las explicaciones.

muy buena clase

matriz = [[1,2,3],[鈥楳aria鈥,鈥楲uis鈥,鈥楢ndr茅s鈥橾,[25.6,16.5,32.8]]

counter = 1
for fila in matriz:
for columna in fila:
print("Fila ",counter, 鈥=>鈥, columna)
counter +=1

matriz = [[1,2,3],[4,5,6],[7,8,9]]
print(matriz)
print(matriz[0])

for fila in matriz:
print(fila)
for columna in fila:
print(columna)

matrix = [
  [1,2,3],
  [4,5,6],
  [7,8,9]
]
print(matrix[0][1])

for row in matrix:
  print(row)
  for column in row:
    print(column)

En el ejemplo de la clase pasada, donde ten铆amos una lista y dentro de ella varios diccionarios, yo anide un bucle for para imprimir los valores, aqu铆 los dejo el c贸digo:

people = [
  {
    'name': 'Manuel',
    'age': 12
  },
  {
    'name': 'Juan',
    'age': 10
  },
  {
    'name': 'Pedro',
    'age': 15
  },
]

for person in people:
  for key, value in person.items():
    print(f"{key}: {value}")

Los ciclos anidados en Python son una t茅cnica de programaci贸n que consiste en utilizar un ciclo dentro de otro ciclo. Esto permite realizar operaciones m谩s complejas al procesar estructuras de datos que tienen varias dimensiones, como matrices, listas de listas, entre otras.

Resumen de una venta de art铆culos utilizando for anidados. Esto se pod铆a resolver con un solo for, pero el c贸digo no queda tan legible a comparaci贸n de cuando utilizamos for anidados.

#iteracion de tablas o matrices
matriz = [
  [1, 2, 3], 
  [4, 5, 6], 
  [7, 8, 9]
]
f=1
for fila in matriz:
  c=1
  for e in fila:
    print('fila',f,'columna',c,f'[{e}]')
    c+=1
  f+=1
# fila 1 columna 1 [1]
# fila 1 columna 2 [2]
# fila 1 columna 3 [3]
# fila 2 columna 1 [4]
# fila 2 columna 2 [5]
# fila 2 columna 3 [6]
# fila 3 columna 1 [7]
# fila 3 columna 2 [8]
# fila 3 columna 3 [9]

Para que salga en forma de matriz:

for element in matriz:
  # print(element)
  
  for item in element:
    if element.index(item)==2:
      print(item)
    else:
      print(item, end=" ")
    
#Ciclos anidados

matriz=[[1,2,3],
        [4,5,6],
        [7,8,9]]

print(matriz[0][1])

for elemento in matriz:
    print(elemento)
    for element in elemento:
        print(element)
def superposicion (list1, list2): # Toma dos listas
    for item in list1: # Cicla por los objetos de la lista 1
        for item2 in list2: # Cicla por los objetos de la lista 2
            if item == item2: # Compara el objeto actual del ciclado de la lista 1 con el objeto actual de la lista 2 si son iguales sigue la sentencia
                return True # Devuelve verdadero (que el objeto esta duplicado)
    return False # Se termina el bucle y si no hay ning煤n objeto duplicado devuelve falso

Imprime tablas de multiplicar

for tabla in range(1, 11):
print(鈥-------------------------------鈥)
input(鈥楶ulsa enter para siguiente tabla 鈥)
print(鈥-------------------------------鈥)
print(鈥楾abla del鈥, tabla)
print(鈥-------------------------------鈥)

for i in range(1, 11):
    print( tabla, '*', i, '=', i*tabla)      
matriz = [ [1,2,3], [4,5,6], [7,8,9]]
print (matriz [0][0]);print(matriz [0][1]);print(matriz [0][2]);print(matriz [1][0]);print(matriz [1][1]);print(matriz [1][2]);
for row in matriz: print(row)
for col in row: print(col)
matriz = [
  [1,2,3],
  [4,5,6],
  [7,8,9]
]
print(matriz[0][1])

for row in matriz:
  print(row)
  for column in row:
    print(column)

matriz = [
[1,2,3],
[4,5,6],
[7,8,9]
]
print(matriz[0][1])