2016-07-06 3 views
4

私はpythonリストには、リストから指定されたオブジェクトを削除するremove()メソッドがあることを知っています。dictにremoveメソッドがないのはなぜですか?

del aList[-1] 

私はまた、我々はキーで辞書から項目を削除するには、デルのステートメントを使用することができることを知っている:私たちはオフセットして、リストから項目を削除するには、デルのステートメントを使用することができることを知っている

aList = [123, 'xyz', 'zara', 'abc', 'xyz'] 
aList.remove('xyz') 

aDict = {'a':1, 'b':2 'c':3} 
del aDict['a'] 

しかし、私が思うに、辞書、のためのremove()メソッドは完全に罰金がされていない:

aDict.remove('a') 

私は1つの理由は、それが必要ではないので、のremove()は、辞書用デル声明よりも任意の入力を保存していないということですね。これは正しいです?

リストについては、削除している間は()「の値によって検索インデックス」を組み合わせて、一緒に「はインデックスにより削除」、それはそこにする必要があります。これは正しいです?

他の理由は何ですか?

答えて

4

注意。さて、dictでの注文は任意です。「最初」はありません。

+0

したがって、dictにremove()を適用することは、dictには「最初」がないため、概念的に間違っていることを意味します。私はこれが好き。 – milesma

+1

これは私が思いつくことができる最初のものです。他にもいくつかの問題があります。 'list'はかなりサイズが固定されているので、' remove'がどれくらい時間がかかるかを "推測"することができます。対照的に、 'dict'はそれが含むデータよりも任意に大きいかもしれません。実際には遅い場合、速いパフォーマンスを暗示するインターフェースを持つことを避けるいくつかの例があります。 – MisterMiyagi

3

それは、それはちょうどpopと呼ばれるん:

ポップ(キー[デフォルト])
キーが辞書にある場合、それを削除し、その値、それ以外のリターンのデフォルトを返します。デフォルトが指定されず、キーが辞書にない場合、KeyErrorが発生します。

+1

'dict.pop()'にはある種の結果がありますが、これは通常使用されているものです。 –

+0

これは本当にpythonにdict.remove()関数がないのになぜlist.remove()を持っているのかという疑問に答えるものではありません。ポップは何か違うものに使用されているので(リストには両方の方法があります) – JGreenwell

+1

@JGreenwell誰が辞書に言っていて、そのメソッドの名前が同じであると言っていますか? – DeepSpace

4

あなたがこの質問を見れば:Difference between del, remove and pop on lists:あなたは、メインの答えは

削除指摘に注意しましょう:最初一致を削除し、ない特定のインデックスを

del:特定のインデックスを削除する

pop:削除された要素を返します

辞書の場合、キーのインスタンスが1つしかない(一意でなければならない)ため、delで十分であるため、削除メソッドは必要ありません。 最初発生を除去 - list.removeは非常に厳格な保証を行うこと

+0

合意。しかし、@MisterMiyagiの答えはもっと近いです。とにかくありがとうございました。 – milesma

1

辞書はpopですが、removeはありません。何故なの? removeが最初にと一致するため、の値がと一致しているため、何も返しません。辞書中のSO:

{'a': 5, 'b': 5} 

dict.removeを削除するべきです。 dict.remove(5)を使用している場合は、どのキーを削除する必要がありますか?さらに、これは非常に便利な操作ではありません。特定のを辞書から削除する必要がある場合は、間違ったデータ構造を使用しています。一方、


dct.pop(key) 

value = dct[key] 
del dct[key] 
return value 

とは違ってこれはリストのpop方法と対比することができません。

lst.pop(index) 

value = lst[index] 
del lst[index] 
return value 
に似ている

つまり、どちらも同じ原理で動作します。

関連する問題