Pythonのお勉強 Part75 (989レス)
Pythonのお勉強 Part75 http://mevius.5ch.net/test/read.cgi/tech/1743698824/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
861: デフォルトの名無しさん (アウアウウー Sa53-ilUi) [] 2025/09/14(日) 20:28:17.08 ID:uqktGAy2a まるちんこ http://mevius.5ch.net/test/read.cgi/tech/1743698824/861
862: デフォルトの名無しさん (ワッチョイ ff02-LMNA) [sage] 2025/09/19(金) 12:09:51.27 ID:qGqvKNvA0 awkで以下のように連想配列を使ってます BEGIN { arr["id1"] = "val1"; arr["id2"] = "val2"; printf(arr["id2"]); } →結果は「val2」 また、以下のようなid列、val列のCSVファイルがあります id1,val1 id2,val2 これらのものを使い、Pythonでも同様に、idが指定した値に合致するval列を取得したいと思ってます 以下のようにcsv.DictReaderを使ってディクショナリに読み込んでみることはできました with open('data/data.csv', 'r') as file: d = list(csv.DictReader(file, fieldnames=['id', 'val'])) このリストを列挙して中身を表示する等はできたのですが、 指定したidに合致するval列を取得する方法が分かりません よい方法を教えてください http://mevius.5ch.net/test/read.cgi/tech/1743698824/862
863: デフォルトの名無しさん (ベーイモ MM8f-xxKh) [sage] 2025/09/19(金) 12:24:49.40 ID:4hZSGpQJM >>862 1. そのレスを丸ごとコピーします 2. ChatGPTやClaude等のAIの入力欄に貼り付けます 3. メッセージを送信します 4. (゚д゚) http://mevius.5ch.net/test/read.cgi/tech/1743698824/863
864: デフォルトの名無しさん (ワッチョイ 3f32-yasC) [] 2025/09/19(金) 12:53:34.42 ID:jazVqD/P0 ありがとうございます!! http://mevius.5ch.net/test/read.cgi/tech/1743698824/864
865: デフォルトの名無しさん (ワッチョイ 8ff0-0uML) [sage] 2025/09/19(金) 13:17:33.03 ID:2/pebCZF0 d['id1'] で 'val1' を参照できるようにしたいということなら、各行ごとに1つのdict にするんじゃなくて、全体を1つのdict にする方がいいのでは。 d = { id: val for id, val in csv.reader( file ) } とかは? http://mevius.5ch.net/test/read.cgi/tech/1743698824/865
866: デフォルトの名無しさん (スフッ Sd5f-ilUi) [sage] 2025/09/19(金) 13:47:25.33 ID:tcJc82E7d with open('data/data.csv', 'r') as file: d = csv.DictReader(file, fieldnames=['id', 'val']) print(d['idHOGE']) http://mevius.5ch.net/test/read.cgi/tech/1743698824/866
867: デフォルトの名無しさん (ワッチョイ 4f01-hzaU) [sage] 2025/09/19(金) 16:26:18.90 ID:vOzhAdtP0 今はChatGPTでも重複時はどうしますか?ってちゃんと確認してくるんだな 出てくるコードの質はともかく要点はほぼ全部網羅してくれてめちゃ親切 http://mevius.5ch.net/test/read.cgi/tech/1743698824/867
868: デフォルトの名無しさん (ワッチョイ 7f36-IHfe) [] 2025/09/19(金) 18:19:29.27 ID:7aePTcRM0 chatGPTにプログラムの質問をするときは必ずThinkingモードにすること デフォルト設定だとThinkingしないクソコード出してくることが多い http://mevius.5ch.net/test/read.cgi/tech/1743698824/868
869: デフォルトの名無しさん (アウアウウー Sa53-ilUi) [] 2025/09/19(金) 19:23:31.74 ID:hOahK7C8a ちっとは考えろやバカタレ http://mevius.5ch.net/test/read.cgi/tech/1743698824/869
870: デフォルトの名無しさん (ワッチョイ 3f02-VRQG) [sage] 2025/09/20(土) 18:48:36.37 ID:usmEJHWE0 Visual Studio Codeの変数ウォッチウィンドウが見づらいわ 他にないのかね? http://mevius.5ch.net/test/read.cgi/tech/1743698824/870
871: デフォルトの名無しさん (ワッチョイ 8ffc-tBek) [sage] 2025/09/20(土) 19:05:33.94 ID:FzwQ5fID0 現状VSCodeかPyCharmの二択だからPyCharmかな試すなら やりたいことによってはJupyterが最強の場合もある http://mevius.5ch.net/test/read.cgi/tech/1743698824/871
872: デフォルトの名無しさん (ワッチョイ 0602-faWY) [sage] 2025/09/21(日) 10:32:13.35 ID:oeEC4MB10 >>865 >>866 回答どうもです いろいろと見直し、全体を1つのdictにする、という方針として、以下のようにしました awkの連想配列とPythonの辞書の違いを再認識しました with open('data/data.csv', 'r') as file: d = csv.DictReader(file, fieldnames=['id', 'val']) result = {row['id']: row['val'] for row in d} print(result['id2']) →val2が得られる http://mevius.5ch.net/test/read.cgi/tech/1743698824/872
873: デフォルトの名無しさん (ワッチョイ 0601-WLcO) [sage] 2025/09/21(日) 12:52:45.41 ID:wuI8+BKP0 id重複時に黙って後勝ちになるが望ましいかどうか http://mevius.5ch.net/test/read.cgi/tech/1743698824/873
874: デフォルトの名無しさん (ワッチョイ 6a04-lG8I) [] 2025/09/21(日) 13:04:55.71 ID:ttcu4MUo0 そんなことはどうでもいいだろうよ 責任の所在の話したってしょうがないでしょ http://mevius.5ch.net/test/read.cgi/tech/1743698824/874
875: デフォルトの名無しさん (ワッチョイ 8a02-CSnM) [sage] 2025/09/21(日) 14:22:55.90 ID:RnLJIZeo0 >>871 まあ、PyCharmも似たようなもんだね… 業務レベルなので、Jupyterは無理かな… http://mevius.5ch.net/test/read.cgi/tech/1743698824/875
876: デフォルトの名無しさん (ワッチョイ 3bf6-4qXD) [sage] 2025/09/21(日) 14:41:37.65 ID:KUfqxhia0 awkのことはよく知らないが、連想配列でキーの重複があるの? http://mevius.5ch.net/test/read.cgi/tech/1743698824/876
877: デフォルトの名無しさん (ワッチョイ 6f54-vMDn) [sage] 2025/09/21(日) 15:03:09.09 ID:TKqe4uhF0 あんなのはハッシュだしな どうやって衝突回避してるのか謎だった 今も謎 http://mevius.5ch.net/test/read.cgi/tech/1743698824/877
878: デフォルトの名無しさん (ワッチョイ 9301-xzLD) [sage] 2025/09/21(日) 15:34:44.26 ID:kS1Ctw9y0 >>874 外部ファイルから読み込むのに重複時の振る舞いがどうでもいい場合なんてある? 仮に後勝ちは望ましくないがチェック処理を入れるくらいならサイレントにバグるので問題ないケースだとしてもそういう確認とか意思決定は明示的にしないといけないんじゃない http://mevius.5ch.net/test/read.cgi/tech/1743698824/878
879: デフォルトの名無しさん (ワッチョイ 9301-xzLD) [sage] 2025/09/21(日) 15:37:03.95 ID:kS1Ctw9y0 >>877 ハッシュの衝突を回避してるわけじゃなくて衝突してもいいような構造にしてるだけ その代わり衝突が増えるにつれ性能が悪化していく http://mevius.5ch.net/test/read.cgi/tech/1743698824/879
880: デフォルトの名無しさん (ワッチョイ 3bf6-4qXD) [sage] 2025/09/21(日) 15:54:55.42 ID:KUfqxhia0 862を読む限り、csvファイルのキー列の値のユニーク性は前提になっていると思うんだが。だから連想配列とかdictに入れるって想定なんじゃないの? http://mevius.5ch.net/test/read.cgi/tech/1743698824/880
881: デフォルトの名無しさん (ワッチョイ 6a04-lG8I) [] 2025/09/21(日) 15:59:04.32 ID:ttcu4MUo0 >>878 データの操作とデータ構造の検査は切り分けることが出来る話でしょ 質問はデータ操作なんだからそっちにフォーカスすればいい IDなんて名前なんだから作成元が非重複を保証してんのかもしれんし、貰い手側が質問の処理の前段でなんかチェックさせてもいい いずれにしてもこの質問では考慮する必要のないかつ混同する必要のない事柄ってこと http://mevius.5ch.net/test/read.cgi/tech/1743698824/881
882: デフォルトの名無しさん (ワッチョイ 732a-ljyC) [] 2025/09/21(日) 16:40:42.51 ID:e5nOC9aY0 >>878 > 外部ファイルから読み込むのに重複時の振る舞いがどうでもいい場合なんてある? ログファイルを読み、とある項目の最新内容が欲しい場合とか。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/882
883: デフォルトの名無しさん (ワッチョイ 8701-xzLD) [sage] 2025/09/21(日) 17:30:15.23 ID:7OCfaZ6W0 >>881 俺は分けることができるとも分けたほうがいいとも思わないから考え方の違いだね チェックを入れると内包表記を使わないほうがよくなる可能性が高かったりするわけでデータ操作と呼んでるところの内容が変わってくる >>880 ユニークが前提となっているからどうでもよいじゃなくて「ユニークが前提なので万が一重複が来た時は後勝ちで問題ない」というところまで明確に判断しておいたほうがいいんじゃないのという話 >>882 それはどうでもいい場合じゃなくてログを読む方向に合わせて後勝ちか先勝ちかどちらか一方に仕様を決めなければいけない場合だと思う http://mevius.5ch.net/test/read.cgi/tech/1743698824/883
884: デフォルトの名無しさん (ワッチョイ 6f54-vMDn) [sage] 2025/09/21(日) 17:58:13.74 ID:TKqe4uhF0 何かの関数の戻り値を渡す、みたいに動作が決まってたら決め打ちでいいけど、 ファイルや通信なんか何でもありなので、 そもそも開けない、通信できない、から始まって、間違いまくったデータでもちゃんと動かないと http://mevius.5ch.net/test/read.cgi/tech/1743698824/884
885: デフォルトの名無しさん (ワッチョイ 3bf6-4qXD) [sage] 2025/09/21(日) 19:55:43.86 ID:KUfqxhia0 >>883 ユニーク性が前提となっていることを明確にしておくのはいいことだけど、ユニーク性を前提として設計しているにも拘らず「万一重複が来た」らそれ自体大問題だと思うけど。それは想定していた前提が成立していないということでしょ。そもそも862のようにid値を検索キーとして使う場合で「後勝ちで問題ない」場合なんてあるかな? 重複がないということを前提にできるからこそdictを使っているのであって、前提が変わってくるならデータ構造の選択とかも変わってくると思うけど。一般論としてデータに重複があっても問題がない場合かどうか気をつけようということなら素直に頷けるんだけど、862のケースで主張するのはムリがあると思うよ。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/885
886: デフォルトの名無しさん (アウアウウー Sacf-kv3/) [] 2025/09/21(日) 19:56:22.43 ID:kxRRh56Ha うましかいないよな http://mevius.5ch.net/test/read.cgi/tech/1743698824/886
887: デフォルトの名無しさん (ワッチョイ 8eaf-wBym) [] 2025/09/21(日) 20:54:40.37 ID:ORrZGGDb0 ttps://mannersy.co.jp/guivenv.htm http://mevius.5ch.net/test/read.cgi/tech/1743698824/887
888: デフォルトの名無しさん (ワッチョイ 2e01-xzLD) [sage] 2025/09/21(日) 23:42:10.87 ID:4W4Jokme0 >>885 個人的にはソフトウェアの設計は想定している前提が成立していない場合の対応まで決めるものだと思ってるけど、今回のはそんな大げさな話じゃないよね 後勝ちになる実装を採用してることを自覚してそれで問題ないと判断できてるかどうか http://mevius.5ch.net/test/read.cgi/tech/1743698824/888
889: デフォルトの名無しさん (ワッチョイ 1e10-4qXD) [sage] 2025/09/22(月) 00:15:54.16 ID:scIzhboY0 重複がありうる状況なら、後勝ちで上書きしてしまう仕様で問題ないわけないだろ。862みたいに検索キーとして使っている場合に。誰がそんな状況でdictを使うんだよ、あほか。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/889
890: デフォルトの名無しさん (ワッチョイ 2e01-xzLD) [sage] 2025/09/22(月) 00:42:13.25 ID:nbJbLtLI0 >>889 上で出てきたログの例を理解できない? 後勝ちでいい例なんていくらでもあると思うんだが http://mevius.5ch.net/test/read.cgi/tech/1743698824/890
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 99 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s