English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本文中,您将学习关于Python dictionary的所有内容;如何创建、访问、添加和删除元素,以及各种内置方法。
Python字典是一个无序的项集合。其他复合数据类型只有值作为元素,而字典有一个键:值对(key:value)。
字典被优化以在键已知时检索值。
创建字典就像将项目放在用逗号分隔的大括号{}中一样简单。
一个项目具有一个键和对应的值,表示为一对,键:值。
尽管值可以是任何数据类型并且可以重复,但是键必须是不可变的类型(具有不可变元素的字符串,数字o元组)并且必须是唯一的。
# 空字典 my_dict = {} # 带有整数键的字典 my_dict = {1: 'apple', 2: 'ball'} # 混合键字典 my_dict = {'name': 'John', 1: [2, 4, 3]} # 使用 dict() my_dict = dict({1: 'apple', 2: 'ball'}) # 将每个项作为一对的序列 my_dict = dict([(1, 'apple'), (2, 'ball')])
Come puoi vedere sopra, possiamo anche utilizzare la funzione built-in dict() per creare un dizionario.
Anche se l'indice viene utilizzato insieme ad altri tipi di contenitori per accedere ai valori, il dizionario utilizza le chiavi. Le chiavi possono essere utilizzate all'interno di parentesi quadre o insieme al metodo get().
La differenza nell'uso di get() è che, se non viene trovata la chiave, restituisce None invece di un errore KeyError.
Quando si esegue questo programma, l'output è:
Jack 26
Il dizionario è mutabile. Possiamo utilizzare l'operatore di assegnazione per aggiungere nuovi elementi o modificare i valori degli elementi esistenti.
Se la chiave esiste già, il valore viene aggiornato, altrimenti viene aggiunta una nuova coppia chiave: valore al dizionario.
Quando si esegue questo programma, l'output è:
{'name': 'Jack', 'age': 27} {'name': 'Jack', 'age': 27, 'address': 'Downtown'}
Possiamo utilizzare il metodo pop() per eliminare un elemento specifico dal dizionario. Questo metodo utilizza la chiave fornita come elemento da rimuovere e restituisce il valore.
Il metodo popitem() può essere utilizzato per eliminare e restituire una coppia casuale di (chiave, valore) dal dizionario. Utilizzando il metodo clear() è possibile eliminare tutti gli elementi in una volta.
Possiamo anche utilizzare la parola chiave del, per eliminare un singolo elemento o l'intero dizionario.
Quando si esegue questo programma, l'output è:
16 {1: 1, 2: 4, 3: 9, 5: 25} (1, 1) {2: 4, 3: 9, 5: 25} {2: 4, 3: 9} {}
Di seguito sono elencati i metodi disponibili per il dizionario. Alcuni di essi sono già stati utilizzati negli esempi precedenti.
Metodo | Descrizione |
---|---|
clear() | Elimina tutti gli elementi dal dizionario. |
copy() | Restituisce una copia superficiale del dizionario. |
fromkeys(seq[,v)] | Usato per creare un nuovo dizionario, con gli elementi della sequenza seq come chiavi e v come valore iniziale per tutte le chiavi del dizionario. |
get(key[,d)] | Restituisce il valore della chiave. Se la chiave non esiste, viene restituito d (predefinito a None). |
items() | Restituisce un array di tuple iterabili (chiave, valore). |
keys() | Restituisce tutti gli elementi chiave del dizionario. |
pop(key[,d)] | Elimina l'elemento con la chiave specificata e restituisce il suo valore. Se non viene trovata la chiave, viene restituito d. Se non viene fornito d e non viene trovata la chiave, viene sollevato un errore KeyError. |
popitem() | Elimina e restituisce una coppia casuale di (chiave, valore). Se il dizionario è vuoto, viene sollevato un errore KeyError. |
setdefault(key[,d)] | Ritorna il valore della chiave specificata, se il valore della chiave non è presente nel dizionario, restituisce il valore specificato, il valore predefinito è None. |
update([other)] | usando daotherAggiorna il dizionario con il paira chiave/valore, sovrascrivendo le chiavi esistenti. |
values() | Restituisce una lista con tutti i valori del dizionario. |
Ecco alcuni esempi di utilizzo di questi metodi.
marks = {}.fromkeys(['Math','English','Science'], 0) # Output: {'English': 0, 'Math': 0, 'Science': 0} print(marks) for item in marks.items(): print(item) # Output: ['English', 'Math', 'Science'] list(sorted(marks.keys()))
La comprensione del dizionario è un metodo elegante e conciso per creare nuovi dizionari da iteratori in Python.
La comprensione del dizionario contiene un'espressione coppia (chiave: valore), seguita da una frase for all'interno di parentesi graffe {}.
Questo è un esempio di creazione di dizionari in cui ogni elemento è una coppia di numeri e il loro quadrato.
squares = {x: x*x for x in range(6)} # Output: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25} print(squares)
Questo codice è equivalente a
squares = {} for x in range(6): squares[x] = x*x
La comprensione del dizionario può includere piùforoEspressione if。
Un'espressione if opzionale può filtrare gli elementi per formare un nuovo dizionario.
Ecco alcuni esempi di dizionari che contengono solo numeri dispari.
odd_squares = {x: x*x for x in range(11) if x%2 == 1} # Output: {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} print(odd_squares)
Per ulteriori informazioni, visitaComprensione di dizionario Python。
Possiamo utilizzare la parola chiave per testare se una chiave è presente nel dizionario in. Nota che il test di appartenenza si applica solo alle chiavi, non ai valori.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} # Output: True print(1 in squares) # Output: True print(2 not in squares) # Testa la presenza di un chiave, non di un valore # Output: False print(49 in squares)
Utilizzando un ciclo for, possiamo esplorare ogni chiave del dizionario.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} for i in squares: print(squares[i])
Le funzioni integrate come all(), any(), len(), cmp(), sort() e altre vengono spesso utilizzate insieme a dictionary per eseguire diversi compiti.
Funzione | Descrizione |
---|---|
all() | Restituisce True se tutte le chiavi del dizionario sono true (o se il dizionario è vuoto). |
any() | Restituisce True se qualsiasi chiave del dizionario è true. Se il dizionario è vuoto, restituisce False. |
len() | Restituisce la lunghezza del dizionario (numero di elementi). |
cmp() | Confronta gli elementi di due dizionari. |
sorted() | Restituisce una lista di chiavi nuovamente ordinata del dizionario. |
Ecco alcuni esempi di come utilizzare le funzioni integrate per gestire i dizionari.
squares = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81} # Output: 5 print(len(squares)) # Output: [1, 3, 5, 7, 9] print(sorted(squares))