パソコン仕事5倍塾
35,000人を指導した東大卒・元日本IBM社内講師が直伝
MENU
受講生さんの投稿
(投稿ID: 5670)
AIユーザさんのコメント
(コメントID: 8737)
jamさんのコメント
(コメントID: 8738)
(コメントID: 8739)
(コメントID: 8740)
(コメントID: 8741)
小川 慶一さんのコメント
(コメントID: 8742)
a = 3 b = 5 print(a + b)
a = 3 b = 5 c = a + b print(c)
base_list = [ {'id': 3, 'name': '山田', 'score': 50}, {'id': 1, 'name': '田中', 'score': 90}, {'id': 2, 'name': '鈴木', 'score': 70}, {'id': 4, 'name': '佐藤', 'score': 60}, {'id': 5, 'name': '高橋', 'score': 80}, ] new_list = sorted(base_list, key=lambda x: x['id']) print(new_list)
new_list = sorted( [ {'id': 3, 'name': '山田', 'score': 50}, {'id': 1, 'name': '田中', 'score': 90}, {'id': 2, 'name': '鈴木', 'score': 70}, {'id': 4, 'name': '佐藤', 'score': 60}, {'id': 5, 'name': '高橋', 'score': 80}, ], key=lambda x: x['id']) print(new_list)
(コメントID: 8743)
my_list = [1, 7, 3, 5, 2] for item in my_list: print(item)
Captcha:
たった1ヶ月で人生が劇的に変わりました
佐藤信さん
役員クラスの方から高い評価を受けるようになりました。
佐賀県 - 岩本徹さん
今までまったく知らなかったショートカットキーを使いまくっています。
東京都 - 鷹觜慶さん
年齢60才間近、営業で外回りの時間が多い私でも退社時間が1-2時間程度早くなりました。
東京都 - 宗内隆明さん
受講前もすでにパソコン得意でしたが、そんな私でも受講して本当に良かったと思えた講座です。
東京都 - 佐伯とも子さん
ここまで包括的に仕事に役立つ深い学びを受けれた講座は初めてでした
東京都 - 飯田倫子さん
2025年10月09日 17:35
2025年10月09日 17:18
2025年10月07日 10:00
2025年09月25日 08:55
2025年09月20日 22:59
2025年10月09日 23:00
2025年10月09日 22:59
2025年10月09日 18:59
2025年10月09日 18:10
2022年02月24日 10:59
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
2022年02月02日 00:00
2022年02月02日 03:00
2022年02月02日 06:00
2022年02月02日 09:00
2022年02月02日 12:00
2025年10月09日 15:15
2025年10月06日 16:00
2025年09月30日 17:00
2025年08月19日 15:30
2025年08月07日 15:00
2025年06月02日 22:50
2025年05月14日 11:55
2025年02月04日 08:51
2025年02月03日 12:58
2024年11月27日 11:48
2025年03月26日 22:33
2025年03月26日 22:12
2025年03月24日 22:28
2025年03月19日 20:10
2025年03月18日 20:52
2025年04月16日 08:30
2025年03月18日 09:07
2025年03月18日 09:06
2025年03月15日 13:23
2025年02月26日 16:37
2025年04月02日 21:01
2025年04月02日 20:47
2025年04月02日 20:37
2025年04月01日 22:03
2025年04月01日 21:27
2025年04月16日 08:32
2025年03月18日 09:10
2025年03月18日 09:09
受講生さんの投稿
(投稿ID: 5670)
new_list = list(filter_result)
print(new_list)
となっていますが、new_list を作らなくても、
print(filter_result) とするだけでも同じことのように思います。
書き換えて実行すると同じ結果が得られました。
new_list のある10・11行目のような書き方をするのはどうしてですか?
ここに限らず、他でも同じようなことが出てくるたびに気になっています。
講座を順番に見ずに、興味のあるところから見ているので前の章でご説明されていれば🙇。
すでに同じ質問があり回答済みでしたら、それを探せなくて🙇。
どうぞよろしくお願い致します。
AIユーザさんのコメント
(コメントID: 8737)
ご質問ありがとうございます。`new_list = list(filter_result)` と `print(new_list)` のように、`filter`の結果をリストに変換してから出力する方法にはいくつかの理由があります。
1. **可読性の向上**: `filter_result`はイテレータであり、直接`print`することも可能ですが、リストに変換することで、データの内容が明確に示されます。特に初心者には、リストとしてデータを見ることで理解が深まることがあります。
2. **再利用性**: `filter_result`をそのまま使うと、イテレータは一度しか走査できません。`list(filter_result)`としてリストに変換することで、データを何度も再利用することが可能になります。
3. **デバッグの容易さ**: リストに変換することで、データの中身を確認しやすくなります。特にデバッグ時には、データの状態を確認するためにリスト形式で持っておくと便利です。
4. **一貫性**: プログラム内でデータを扱う際に一貫した形式(この場合はリスト)で扱うことで、コード全体の整合性が保たれます。
講座の他の章でこのような理由が説明されているかもしれませんが、もし見つからない場合や不明な点があれば、遠慮なく質問してください。興味のあるところから学習を進めることも大切ですが、基礎的な部分を押さえておくと理解が深まりますので、余裕があれば順番に見直してみることもおすすめします。
jamさんのコメント
(コメントID: 8738)
(1)「’new_list’ はリストであり、リストであれば、要素を順番に取り出せるオブジェクトであり、イテレータと言えます。」と、
「’filter_result’はリストで返されているはずなので、データ型はリストのはずです。」という理解はどこが間違っていますか?
(2)リスト=イテレーター という理解は間違いですか?
(3)イテレータは一度しか走査できませんとは、どういうことですか?
今後は基礎を順にみることにします。
よろしくお願い申し上げます。
AIユーザさんのコメント
(コメントID: 8739)
ご質問ありがとうございます。それでは、順を追って説明しますね。
(1)**filter_resultのデータ型について**:
`filter`関数はリストではなく、イテレータを返します。イテレータは、要素を一つずつ取り出すことができるオブジェクトですが、リストのように全体をすぐに参照できるわけではありません。そのため、`list(filter_result)`としてリストに変換することで、全体を一度に見ることができるようになります。
(2)**リストとイテレータの違い**:
リストは、要素を順番に取り出せるコレクションで、全体を何度でも参照可能です。一方、イテレータは、その場で要素を一つずつ取り出す仕組みで、一度要素を取り出したら、再び同じ要素を取り出すことはできません。つまり、リストは複数回の走査が可能ですが、イテレータは一度しか走査できないという違いがあります。
(3)**イテレータの走査について**:
イテレータは、一度要素を取り出してしまうと、その要素を再度取り出すことができません。例えば、`for`ループでイテレータを使って要素を取り出した場合、そのループをもう一度実行しても、要素は空になってしまいます。リストに変換することで、何度でも要素にアクセスできるようになります。
基礎を順番に学ぶことで、こうした概念がよりクリアになると思います。引き続き学習を頑張ってくださいね。
jamさんのコメント
(コメントID: 8740)
AIユーザさんのコメント
(コメントID: 8741)
理解が深まったようで嬉しいです!イテレータとリストの違いは、Pythonでデータを扱う際にとても重要な概念ですので、これを機にぜひさらに学びを進めてください。また何か疑問があれば、いつでも質問してくださいね。学習を引き続き頑張ってください!
小川 慶一さんのコメント
(コメントID: 8742)
>print(filter_result) とするだけでも同じことのように思います。
>書き換えて実行すると同じ結果が得られました。
> new_list のある10・11行目のような書き方をするのはどうしてですか?
疑問はごもっともです。
初心者でも分かりやすいようにということで、こうやって開いた記述にしています。
より、
のほうが、初心者(IT慣れしていない方)には分かりやすいのです。
上記の式くらいであれば明快なのですが、以下くらいになると見通しが悪くなります。(入れ子構造が増えるほど頭が追いつかなくなる)
以下ならなおさらですね。
こういう説明でどこまで端折ってしまうかは毎回悩みます。
あまり丁寧にやると、IT慣れしている方にはかえって分かりにくいかもしれません。ただ、IT慣れしていない方/IT慣れしている方のどちらに合わせるかというと、前者のほうにしておかないと挫折要因になってしまうので...。後者の方には説明が冗長すぎて回転数があわなくなることはご容赦いただきたいと。(受講生さんのように自分でいろいろ試せる方の心配はしていません)
小川 慶一さんのコメント
(コメントID: 8743)
ここでのAIの返答はあまり気にしないでください。
「イテレーター」というのは、バッティングマシーンのピッチャーみたいなものです...という説明でどうですかね。
「手元のボールがなくなるまでボールをひとつずつ投げてくるマシーン」というのを想像してみてください。
このとき、バッティングマシーンのピッチャーは、次々とボールを投げてきます。このような繰り返し(イテレート)をするのがイテレータ。イテレートできるものを「イテラブル」と言います。
list もイテレータです。listの要素を次々と投げてくる。
Pythonのfor文なんかは、このイテラブルなものがイテレートしてくる要素を次々と処理するものです。
リストはイテレートをはじめる段階で要素数が有限(ボールの数が投げ始める前から決まっている)ですが、Pythonでは、「止めろというまでひたすら腕をブンブン振り回すだけ」みたいなものとか、「
ボールを投げようとしたところで、空中からふとボールが湧いてくる(ので、永久にボールを投げ続けられる)バッティングマシーンのピッチャー」とでもいうような、無限ループが可能なイテレータも登場します。