Python | Stampa le diagonali dell`elenco 2D

| | |

Esempi :

  Input:  [[1, 2, 3], [4, 5, 6], [7, 8, 9]]  Output:  Diagnol 1 - [1, 5, 9] Diagnol 2 - [3, 5, 7]  Input:  [[’a’,’ b’ ], [’c’,’ d’]]  Output:  Diagnol 1 - [’a’,’ d’] Diagnol 2 - [’b’,’ c’] 
< p> Approccio n. 1 Usando Python xrange()

Possiamo usare una comprensione di un elenco di una riga insieme alla funzione xrange() . xrange() viene utilizzato per scorrere un certo numero di cicli for. Quindi, stampiamo l’elemento nella posizione [i] [i] ad ogni iterazione del ciclo. [Funziona in Python2]

Esci :

 Diagnol 1 - [1, 5, 9] Diagnol 2 - [3, 5, 7] 

Approccio n. 2 Usa utilizzando range()

Questo metodo è simile all’approccio n. 1. Il vantaggio di range() è che funziona per entrambe le versioni di Py thon, cioè .e. Python2 e Python3.

# Programma Python2 per la stampa di diagonali in liste 2D

def printDiagnol (lst):

# Per stampare la diagnostica iniziale

print ( ’Diagnol 1 -’ ),

print ([ lst [i] [i] for i in xrange ( len (lst) )])

< p>

# Diagnosi secondaria stampabile

print ( ’ Diagnol 2 -’ ),

print ([lst [i] [ len (lst ) - 1 - i] for i in xrange ( len (lst))])

< p>
# Codice del driver

lst = [[ 1 , 2 , 3 ],

[ 4 , 5 , 6 ],

[ 7 , 8 , 9 ]]


printDiagnol (lst)

# Programma Python3 per la stampa di diagonali in liste 2D

def printDiagnol (lst):

# Per stampare la diagnostica iniziale

print ( ’ Diagnol 1 - ’ , end = " ")

print ([lst [i ] [i] for i in intervallo ( len (lst))])

# Diagnosi secondaria stampabile

print ( ’ Diagnol 2 - ’ , end = " ")

stampa ([lst [i ] [ len (lst) < classe codice = "parola chiave"> - i - 1 ] for i in range ( len (lst))])


# Codice del driver

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

printDiagnol (lst)

Output:

 Diagnol 1 - [1 , 5, 9] Diagnol 2 - [3, 5, 7] 

Approccio n. 3. Usando enumera ()

Python enumera () è anche un alternativa ai metodi di cui sopra. Utilizza due variabili & # 39; io & # 39; e & # 39; r & # 39;, scorrere l’enum (lst) e restituire semplicemente l’elemento i- esimo da & # 39; r & # 39 ;.

# Programma Python3 per la stampa di diagonali in una lista 2D

def printDiagnol (lst):

# Per stampare la diagnostica iniziale

print ( ’Diagnol 1 -’ , end = "")

stampa ([r [i] for i, r in enumera (lst)])

# Per la stampa della diagnostica secondaria

print ( ’ Diagnol 2 - ’ , end = "")

print ([r [~ i] for i, r in enumera (lst)])


# Codice del driver

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

printDiagnol (lst)

Output:

 Diagnol 1 - [1, 5, 9] Diagnosi 2 - [3, 5, 7]