id:hirokiky です。 今日はPythonの便利な len 関数について、 PyQサポート で回答したことから抜粋してお伝えします。
Python公式ドキュメントlen関数: https://docs.python.jp/3/library/functions.html#len
ご質問と回答
辞書から d.keys() で dict_keys(['年齢', '身長', '体重', '視力', '名前']) を取り出せました。 このkeyがいくつあるかを取得することはできますか?どうすればよいですか? (この例では5)
はい。可能です!
len
という関数を使うことで、キーの数を取得できます。
d = {"年齢": 25, "身長": 165, "体重": 45, "視力": 0.1, "名前": "清原"} keys = d.keys() # 長さを取得して、表示する key_length = len(keys) print(key_length)
また、辞書のキーの数は辞書の要素数と同じ意味になります。
以下のように直接 len(d)
としても同じ値が取得できます。
len(d)
len関数は他にも使えます
len(長さや数を測りたいもの)
とすることで値が取れます。
他にも複数の値を持つものであれば len
が使えます。
# リスト l = ["A", "B", "C"] len(l) # リスト l の長さ 3 になります # 文字列 s = "清原弘貴" len(s) # 文字列 s の長さ 4 になります # 辞書 d = {"年齢": 25, "身長": 165, "体重": 45, "視力": 0.1, "名前": "清原"} len(d) # 辞書 d の要素の数 5 になります keys = d.keys() len(keys) # 辞書 d のキーの数 5 になります(要素の数と同じです) # 集合 s = {"a", "b"} len(s) # 集合 s の要素の数 2 になります
ですが、数値などには長さがありませんのでエラーになります。
「TypeError
(型の間違いのエラー): int の型は len が無いよ」というエラーです。
>>> len(8) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: object of type 'int' has no len()
ちょっと踏み込んで:lenってどういう仕組みなの?
少し難しい内容になるかもしれませんが、Pythonの深い部分のお話です。
len
はPythonの色々な型(辞書、リストや集合)に対して使えますが、どういった仕組みで動作しているんでしょう。
清水川さん の「Pythonはどうやってlen関数で長さを手にいれているの?」というPyConJP2017年の発表が参考になります (初級から順に説明されているので、少し覗いてみるだけでも面白いです)。
以上です。
len
はPythonのプログラム中でもよく使われる関数です。
ぜひ使い方を身につけておきましょう。
PyQのサポートでは「プログラムが動かない」という質問だけでなく「これって何なの?」や「意味の解説をしてほしい」などのご質問も受け付けています。 ぜひ、Pythonやプログラミングの疑問を解決して効果的にプログラミングを身に着けられるようになりましょう。