Creo que ya hemos hablado de listas de listas en Python ahora vamos a hablar un poco de como se crean estructuras de arrays verticales,osea Arrays de Arrays o como les digo Arrays anidadas,esto nos servirá para almacenar datos en una sola lista de arrays y no perdernos tanto cuando ya tenemos cierto numero de arreglos en nuestro script/programa, por ejemplo si ya tengo dos arreglos de dos versiones de sistemas:
my @windows = ("XP","Vista","Seven");
Y uno de Mac:
my @Mac = ("Leopard","Lion","Tiger");
Podemos meterlos en otro array que se llame sistemas, por ejemplo
my @sistemas = # Seguir leyendo
Para crear un llamado array anidado debemos definir primero nuestros arrays horizontales,como lo hice arriba, y después llenar el array con esta sintaxis
my @ArrayDarrays = (\@array1,\@array2,\@etc);
Este carácter (\) se usa para referenciar un valor,en este caso estamos referenciando dos array's a otro.
Para llamar nuestros arrays es igual que siempre:
print "$array[valor]";
Como vimos anteriormente en donde valor es el numero del elemento del array,contando de izquierda a derecha comenzando por el cero.
En los Arrays anidados es así
$arrayA[Avalor][valor]; # (A es Anidado)
El Avalor es el valor del array dentro del array anidado,igual partiendo de izquierda a derecha desde el cero,y en el valor es el valor del array del Avalor,por ejemplo:
¿esto que da como resultado?
#/usr/bin/env perl
use strict;
my @sistemas = qw(Mac Windows);
my @windows = qw(XP Vista Seven);
my @Mac = qw(Leopard Lion Tiger);
my @OS = (\@sistemas,\@windows,\@Mac);
print "Mi sistema de escritorio es " . "$OS[2][1]" . " de " . "$OS[0][0]\n";
Si pensaste que la respuesta es
Mi sistema de escritorio es XP de Windows
Estas equivocado,la respuesta es
Mi sistema de escritorio es Lion de Mac
Aunque uso Gentoo....
Bien,para recorrer todo el Array de Arrays lo hacemos igual que con un array normal,solo que también anidado,por ejemplo foreach anidado en while:
Esto lo vamos a ver cuando haga un tutorial de referencias,ya que no lo he hecho,pero aqui les dejo un ejemplo que esta hasta abajo de como es una referencia simple
#/usr/bin/env perl
use strict;
my @sistemas = qw(Mac Windows);
my @windows = qw(XP Vista Seven);
my @Mac = qw(Leopard Lion Tiger);
my @OS = (\@sistemas,\@windows,\@Mac);
print "Mi sistema de escritorio es " . "$OS[2][1]" . " de " . "$OS[0][0]\n";
my $i = 0; my $n = 0;
while ($i < $#OS+1 ) {
foreach $n (0..@{$OS[$i]}-1) {
print "Mi sistemas son $OS[$i][$n]\n";
}
$i+=1;
}
my $referencia = \@OS;
print "Referencia" . " $referencia->[0]->[0]" . "\n";
No hay comentarios.:
Publicar un comentario
Los comentarios serán revisados antes de ser publicados.