2012-02-21 6 views
9

아래 한 줄 방법이 있습니까? 당신은 당신이 한 라이너 부를 것이다파이썬 델 한 라인 사전에

myDict.pop(key, None) 
+2

먼저 dict 문서를 읽으십시오. –

+0

@ user683111 : 당신을 위해 일했다면 답을 받아 들여야합니다 :) – avasal

+2

[사전에서 키를 제거하는 방법?] (http://stackoverflow.com/questions/11277432/how-to-remove- a-key-from-dictionary) – strongMA

답변

18

하나는 항상 명시 적으로 __delitem__ 메소드를 호출 할 수

>>> d={1:2} 
>>> if 1 in d: del d[1] 
... 
>>> d 
{} 
+0

고마워, 정확히 내가 원했던 것 – scruffyDog

+0

'key'가 myDic (myDict와 다른)에있는 경우에만 제거해야한다. –

+1

@MichelKeijzers : 정말로 오타가 아닌 것 같니? –

0

를 작성할 수

myDict = {} 
if 'key' in myDic: 
    del myDic['key'] 

감사

+0

아니, 아니. –

+0

걱정하지 마시고 pop (key, None) 옵션을 사용하십시오. –

+2

두 줄이므로 [PEP 8] (http://www.python.org/dev/peps/pep-0008/)에서 허용하지 않는 형식으로 한 줄로 그냥 훑어보기 때문에 한 줄이 아니라 한 줄이라고 부릅니다. 내가 이런 식으로하지 않는 다른 두 가지 이유는 (a) 짧고 예쁘지 않다. (b) 사전 이름과 키를 한번씩 두 번 언급해야한다. 동일한 인수가'd.get (k, v)'와 비교하여'd [k]가'd else'v''에 적용됩니다. –

2

pop 방법 외에도을 - del과 동일하지만 표현보다는 오히려 표현에 영향을 미친다. 표현식이므로 인라인 "if"(파이썬의 C 삼자 연산자)와 결합 할 수 있습니다.

d = {1:2} 

d.__delitem__(1) if 1 in d else None