Aggiornare i dizionari
Fa parte della sezione Logica e flusso del percorso Swift di Coddy. Lezione 14 di 56.
Scrivi in un dizionario nello stesso modo in cui leggi da uno: con la notazione tramite pedice.
var prices: [String: Int] = ["apple": 1]
prices["bread"] = 3 // aggiunge la chiave
prices["apple"] = 2 // aggiorna una chiave esistente
prices["apple"] = nil // rimuove la chiaveDue metodi con nome fanno la stessa cosa in modo più esplicito:
prices.updateValue(5, forKey: "milk") // restituisce il valore precedente oppure nil
prices.removeValue(forKey: "bread") // restituisce il valore rimosso oppure nilI metodi con nome restituiscono il valore precedente, il che è utile quando devi sapere se la chiave esisteva già.
Lo schema del pedice predefinito della lezione precedente si combina perfettamente con la mutazione: è così che costruisci un contatore senza scrivere un if:
var counts: [String: Int] = [:]
for letter in ["a", "b", "a"] {
counts[letter, default: 0] += 1
}
// counts == ["a": 2, "b": 1]Sfida
MedioLeggi una singola riga di input: un elenco di operazioni separate da virgole su un dizionario iniziale. Ogni operazione è una delle seguenti:
set:<key>:<value>aggiungi o aggiorna (il valore è un intero)add:<key>:<value>aggiungi il valore a quello esistente (usa il pattern di pedice con valore predefinito)del:<key>rimuovi la chiave
Dopo aver applicato ogni operazione nell'ordine a un [String: Int] inizialmente vuoto, stampa le chiavi in ordine alfabetico, una per riga, nel formato <key>=<value>.
Per l'input set:a:5,add:a:3,set:b:1,del:b,add:c:2, l'output è:
a=8
c=2Provalo tu
let ops = readLine()!.components(separatedBy: ",")
var dict: [String: Int] = [:]
// TODO: analizza ogni op e applica set/add/del; stampa le chiavi ordinate con i relativi valori
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Conteggio e indiciMaiuscole, minuscole e rimozione degli spaziRicerca nelle stringheSuddivisione e unioneSostituzione di sottostringheRiepilogo - Verifica del nome utente4Insiemi
Creare insiemiUnione e intersezioneDifferenza e differenza simmetricaSottoinsieme e sovrainsiemeRiepilogo - Filtro per tag7Progetto - Tracciatore di abitudini
Panoramica del progettoSegna come completato10Progetto - Motore di quiz
Panoramica del progettoPorre domande2Intervalli e passi
Intervalli chiusi e semiapertiPassoMetodi degli intervalliIntervalli in switchRiepilogo - Griglia del calendario5Funzioni di ordine superiore Parte 1
MapFilterReduceConcatenare map, filter e reduceRiepilogo - Statistiche sulle parole3Dizionari
Dichiarare i dizionariRicerca facoltativaAggiornare i dizionariIterare sui dizionariRaggruppare i valoriRipasso - Inventario6Funzioni di ordine superiore Parte 2
compactMapflatMapsorted(by:)Creare pipelineRiepilogo - ClassificaEsercitati da solo: Playground Swift