Esiste un modo per eseguire una riga di seguito?Python del if nel dizionario in una riga
myDict = {}
if 'key' in myDic:
del myDic['key']
grazie
Esiste un modo per eseguire una riga di seguito?Python del if nel dizionario in una riga
myDict = {}
if 'key' in myDic:
del myDic['key']
grazie
È possibile scrivere
myDict.pop(key, None)
grazie, esattamente quello che volevo – scruffyDog
Dovrebbe solo rimuoverlo se 'chiave' è in myDic (che è diverso da myDict) –
@MichelKeijzers: Pensi davvero che non sia un refuso? –
Volete chiamare questo un uno di linea:
>>> d={1:2}
>>> if 1 in d: del d[1]
...
>>> d
{}
No. Non lo farei. –
non preoccuparti, vai con l'opzione pop (chiave, nessuna) quindi. –
Non lo chiamo una riga perché sono due righe, solo una in una forma non consentita da [PEP 8] (http://www.python.org/dev/peps/pep-0008/). Altri due motivi per cui non lo farei mai in questo modo (a) non è così breve e carino; (b) richiede di menzionare il nome del dizionario e la chiave due volte ciascuno anziché una volta. Gli stessi argomenti si applicano con 'd [k] se k in d else v' contro' d.get (k, v) '. –
Oltre al metodo pop
si può sempre esplicitamente chiamare il metodo __delitem__
- che fa lo stesso di del
, ma viene fatto a espressione di s piuttosto che una dichiarazione. Poiché si tratta di un'espressione, può essere combinato con la linea "se" (la versione di Python del C operatore ternario):
d = {1:2}
d.__delitem__(1) if 1 in d else None
La prima cosa da fare con queste domande: leggere la documentazione 'dict' del tutto. –
@ user683111: dovresti accettare la risposta, se ha funzionato per te :) – avasal
possibile duplicato di [Come rimuovere una chiave dal dizionario?] (Http://stackoverflow.com/questions/11277432/how-to-remove- a-key-from-dictionary) – strongMA