辞書(Map)から要素削除 #
辞書(Map)から要素を削除する方法についてを示す。
JavaではMapクラスに**remove()**というメソッドがあり、引数にキーを指定すると、Map内でそのキーの要素が削除される。
V remove(Object key)
指定したキーがMapに無い場合はnullが返る。
また、Mapから全ての要素を削除したいときは、**clear()**というメソッドを用いると全ての要素を削除できる。
void clear()
実行例を以下に示す。
import java.util.Map;
import java.util.HashMap;
class Main{
public static void main(String args[]){
Map<String,String> m = new HashMap<>();
m.put("key","value");
m.put("key2","value2");
m.put("key3","value3");
System.out.println(m);
m.remove("key2"); //key2削除
System.out.println(m);
m.clear(); //全削除
System.out.println(m);
}
}
実行結果
> java Main
{key2=value2, key3=value3, key=value}
{key3=value3, key=value}
{}
Pythonでは以下の二つの方法がある。
- del文を使い要素を削除する (使用例:
del 辞書[キー]
) - 辞書の関数**pop()**を使う (使用例:
辞書.pop(キー)
)
どちらの方法でも削除は行える。違う点は、del文の場合は実行した時何も返されないが、pop関数の場合は削除された値が返される。
存在しないキーを指定した場合はエラーになる。
また、辞書から全ての要素を削除したい時は、辞書に**clear()**という関数があるのでこれを使うと便利。
実行例を以下に示す。
>>> d={}
>>> d["key"]="value"
>>> d["key2"]="value2"
>>> d["key3"]="value3"
>>>
>>> d
{'key': 'value', 'key2': 'value2', 'key3': 'value3'}
>>>
>>> del d["key2"]
>>>
>>> d
{'key': 'value', 'key3': 'value3'}
>>>
>>> d.pop("key3")
'value3'
>>>
>>> d
{'key': 'value'}
>>>
>>> del d["key2"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'key2'
>>>
>>> d.pop("key3")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'key3'
>>>
>>> d
{'key': 'value'}
>>>
>>> d.clear()
>>>
>>> d
{}
>>>
Javascriptにおいて、連想配列から指定した添字のデータを削除するには、特殊演算子deleteを利用する。
使用法は以下の通り。
delete 連想配列.添字
//または
delete 連想配列[添字]
例を以下に示す。
var temperature = new Array();
temperature['Tokyo'] = 20;
temperature['Sapporo'] = 15;
temperature['Naha'] = 25;
console.log(temperature['Tokyo']);
//'Tokyo'のデータを消す
delete temperature['Tokyo']
console.log(temperature['Tokyo']);
結果
20
undefined