Array multidimensionali

di il
5 risposte

Array multidimensionali

Ciao!
Sto programmando da poco in Python e trovo ancora qualche difficoltà...
Esiste un modo per dichiarare una matrice (tipo matrice[20][20]) che non sia matrice = [[],[], ... , [], []]
L'idea sarebbe di avere una specie di scacchiera su cui modificare le celle... in C mi verrebbe istintivo, su Python non ho capito, forse ho proprio sbagliato approccio.
Grazie mille in anticipo

5 Risposte

  • Re: Array multidimensionali

    Devi utilizzare VbScript
  • Re: Array multidimensionali

    Il metodo è quello:
    a=[[1,2,3,4],[5,6,7,8]]
    e accedi alla riga/colonna con
    a[riga][colonna]
    Se vuoi ad esempio il 5 (riga 1, colonna 0) fai
    a[1][0]
  • Re: Array multidimensionali

    Andrea Quaglia ha scritto:


    Il metodo è quello:
    a=[[1,2,3,4],[5,6,7,8]]
    e accedi alla riga/colonna con
    a[riga][colonna]
    Se vuoi ad esempio il 5 (riga 1, colonna 0) fai
    a[1][0]
    Si fin lì mi pare abbastanza simile al C, il problema si pone se avendo una matrice enorme già solo 20x20 bisognerebbe scriverla
    a = [[],[], ... , []]
    in più se cerco di inserire un numero nella lista mi da "IndexError: list index out of range" (essendo vuota) quindi per dare assegnamento dovrei dichiararla ad esempio:
     a = [[0, 0, 0, ...],[0, 0, 0, ...], ... , [0, 0, 0, ...]] 
    Non esiste un modo un po' più veloce?
  • Re: Array multidimensionali

    Puoi facilmente creare una matrice di qualsiasi dimensione facilmente utilizzando una list comprehension
    
    valore_default = None
    righe = 5
    colonne = 10
    
    matrice =[[valore_default]*colonne for x in range(righe)]
    
    Altro approccio è invece utilizzare un dizionario
    
    matrice = {}
    
    matrice[(2, 4)] = 7 # salvi 7 nella posizione (2, 4)
    
  • Re: Array multidimensionali

    SuperQWE ha scritto:


    Puoi facilmente creare una matrice di qualsiasi dimensione facilmente utilizzando una list comprehension
    
    valore_default = None
    righe = 5
    colonne = 10
    
    matrice =[[valore_default]*colonne for x in range(righe)]
    
    Altro approccio è invece utilizzare un dizionario
    
    matrice = {}
    
    matrice[(2, 4)] = 7 # salvi 7 nella posizione (2, 4)
    
    Ok perfetto è proprio quello che cercavo
    Grazie mille!!!
Devi accedere o registrarti per scrivere nel forum
5 risposte