BLOCCHI INCORPORATI LISTE (Lists Blocks)

Una serie di elementi, testo, numeri, colori, altre liste, legati tra loro formano una lista (o elenco). Se ci pensate bene una rubrica telefonica, il primo record (la prima riga) ha i suoi campi (volgarmente, le celle della tabella) legati tra loro perchè appartenenti alla prima voce. Quello che vedete in una rubrica (o in un foglio di Excel, o in una lista della spesa) è quasi sempre in forma tabellare:

Potenza ed essenza di una lista

Per comodità, come sempre, consiglio di appoggiarvi a una variabile per gestire al meglio le liste:
aggiungere items a una lista legata a una variabile

Elementi della lista inseriti attraverso le due caselle di testo TxtNome e TxtNumero

Per capire l’essenza e la potenza di una lista, provate questo bellissimo codice (sì, esiste una bellezza anche in un codice scritto bene) che permette di cambiare in maniera ciclica, il colore di sfondo di un bottone (Provatelo e nell’ interfaccia utente inserite solo un pulsante):
 

Conversione in CSV e altro

Per una maggiore compatibilità coi dati esterni, esistono le funzioni  (da list to csv row in poi) di conversione da/a file in formato universale CSV (comma-separated values).
La lista e un tipo mutabile: puo essere allungata ed accorciata, e si possono modificare e cambiare i suoi elementi. Poichè l’oggetto cambia, tutte le variabili che vi si riferiscono “vedono” il cambiamento.
In AI2, al contrario di tutti i linguaggi di programmazione, non esiste un comando di ordinamento.
Anche sulla ricerca di valori uguali, non esiste una funzione già implementata. Ad esempio nella richiesta di mostrare tutti i “Rossi” che abitano in una città.
App Inventor 2 Kodular ThunkableX
Fig.: Le tre liste dei componenti

create empty list

Crea un elenco vuoto senza elementi.

make a list

Crea un elenco dai blocchi dati. Se non si forniscono argomenti, viene creato un elenco vuoto, al quale è possibile aggiungere elementi in un secondo momento. Questo blocco è un mutatore . Facendo clic sul segno più blu, è possibile aggiungere ulteriori elementi all’elenco.

add items to list

Aggiunge gli elementi (items) dati alla fine dell’elenco. La differenza tra questo e append to list è che il secondo accetta gli elementi da aggiungere come un unico elenco mentre add items to list accetta gli elementi come singoli argomenti. Questo blocco è un mutatore .

is in list?

Se l’oggetto è uno degli elementi dell’elenco, restituisce vero; in caso contrario, restituisce false. Notare che se un elenco contiene elenchi secondari, i membri degli elenchi secondari non sono essi stessi membri dell’elenco. Ad esempio, i membri dell’elenco (1 2 (3 4)) sono 1, 2 e l’elenco (3 4); 3 e 4 non sono essi stessi membri dell’elenco.

length of list – lunghezza della lista

Restituisce il numero di elementi nell’elenco.

is list empty

Se l’elenco non ha elementi, restituisce true; in caso contrario, restituisce false.

pick a random item

Seleziona un elemento a caso dall’elenco.

index in list

Restituisce la posizione del valore (things) nell’elenco. Se non nell’elenco, restituisce 0.

select list item

Seleziona l’elemento in corrispondenza dell’indice indicato nell’elenco indicato. Il primo elemento dell’elenco è nell’indice 1.

insert list item

Inserisce un elemento nell’elenco nella posizione specificata.

replace list item

Inserisce la sostituzione nell’elenco indicato nell’indice di posizione. L’elemento precedente in quella posizione viene rimosso.

remove list item

Rimuove l’elemento nella posizione specificata.

append to list

Aggiunge gli elementi nel secondo elenco alla fine del primo elenco.

copy list

Crea una copia di un elenco, inclusa la copia di tutti gli elenchi secondari.

is a list?

Se l’oggetto è una lista, ritorna vero; in caso contrario, restituisce falso.

reverse list

Inverte una copia dell’elenco con elementi nell’ordine inverso. Ad esempio reverse ([1,2,3]) restituisce [3,2,1]

list to csv row

Interpreta la lista come una riga di una tabella e restituisce un testo CSV (comma-separated values – valore separato da virgola) che rappresenta la riga. Ogni elemento nell’elenco di righe viene considerato come un campo ed è riportato tra virgolette nel testo CSV risultante. Gli articoli sono separati da virgole. Ad esempio, la conversione dell’elenco (abcd) in una riga CSV produce (“a”, “b”, “c”, “d”). Il testo della riga restituita non ha un separatore di riga alla fine.

list to csv table

da lista a tabella csv
Interpreta l’elenco come una tabella in formato maggiore di riga e restituisce un testo CSV (valore separato da virgola) che rappresenta la tabella. Ogni elemento nell’elenco dovrebbe essere esso stesso un elenco che rappresenta una riga della tabella CSV. Ogni elemento nell’elenco di righe viene considerato come un campo ed è riportato tra virgolette nel testo CSV risultante. Nel testo restituito, gli elementi nelle righe sono separati da virgole e le righe sono separate da CRLF (\ r \ n) Vedi caratteri speciali.

list from csv row

Analizza un testo come una riga formattata CSV (valori separati da virgola) per produrre un elenco di campi. Ad esempio, la conversione (“a”, “b”, “c”, “d”) in un elenco produce (abcd).

list from csv table

Analizza un testo come una tabella formattata CSV (valori separati da virgola) per produrre un elenco di righe, ognuna delle quali è un elenco di campi. Le righe possono essere separate da newline (\ n) o CRLF (\ r \ n).

lookup in pairs – Ricerca in coppia

Utilizzato per cercare informazioni in una struttura simile a un dizionario rappresentata come un elenco. Questa operazione accetta tre input, una chiave, una coppia di elenchi (pairs) e un risultato notFound, che per impostazione predefinita è impostato su “non trovato”. Qui le coppie devono essere un elenco di coppie, ovvero un elenco in cui ogni elemento è esso stesso un elenco di due elementi. Lookup in pairs trova la prima coppia nell’elenco il cui primo elemento è la chiave e restituisce il secondo elemento.
Ad esempio, se l’elenco è ((name Hello Kitty) (age 41) (height 5 apples) (weight 3 apples)), guardando dall’alto “age” si restituirà “41”. Se non esiste tale coppia nell’elenco, lookup in pairs verrà restituito il parametro notFound . Se pairsnon è un elenco di coppie, quindi l’operazione segnalerà un errore. Ecco un esempio:

 

join with separator – Unisci con separatore

Unisce tutti gli elementi nell’elenco specificato dal separatore specificato, producendo testo di conseguenza.
Aggiornato al 01/01/2021
Aggiornato al 01/01/2021
Aggiornato al 01/01/2021

Vuoi avere più informazioni sul Codin visuale? Vai alla pagina dei Componenti e comportamenti dove potrai imparare a scrivere il linguaggio di programmazione per App Inventor 2, Kodular e Thunkable X. Visita la pagina del Blog con le ultime notizie sulle le tre piattaforme. Nella pagina Documentazione troverai i collegamenti ai forum, il glossario, i link ai siti dei migliori programmatori, i download e tanti altri accessori.