!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。
・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
エラー文(勝手に省略orスクショうp等の横着禁止)と
おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。
※前スレ
Pythonのお勉強 Part72
https://mevius.5ch.net/test/read.cgi/tech/1703659345/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
探検
Pythonのお勉強 Part73
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ f610-G7il)
2024/06/06(木) 08:48:10.07ID:DsazphEm0437デフォルトの名無しさん (ワッチョイ eb2a-DL1l)
2024/08/08(木) 18:32:36.69ID:yAKyTPF90438デフォルトの名無しさん (アウアウエー Sa23-gEAd)
2024/08/09(金) 07:45:57.46ID:wGtJ6OQCa パフォーマンスを最適化するためのヒント
ループよりもリスト内包を使う
ジェネレータを活用して効率的な処理を行う
高価な関数呼び出しをキャッシュする
コンテキストマネージャでリソースを管理する
NumPyで演算をベクトル化
ループよりもリスト内包を使う
ジェネレータを活用して効率的な処理を行う
高価な関数呼び出しをキャッシュする
コンテキストマネージャでリソースを管理する
NumPyで演算をベクトル化
439デフォルトの名無しさん (ワッチョイ c954-Egr9)
2024/08/09(金) 08:10:44.56ID:RWMssfNv0 速度要ることが見えてるなら最初からpythonを選ばないのが正解
全探索でパズル解かせるとかやると、終わるまで何日もかかる
工夫で1桁くらい速くなるけど、結局Cに移植とかになる
全探索でパズル解かせるとかやると、終わるまで何日もかかる
工夫で1桁くらい速くなるけど、結局Cに移植とかになる
440デフォルトの名無しさん (ワッチョイ 8101-gp7T)
2024/08/09(金) 10:18:56.99ID:UdzYyqcH0 >a=b=c=None
書き方の問題とは別に1つの関数内で3つの変数に明示的にNoneを代入する状況は避けたほうがいいように思う
書き方の問題とは別に1つの関数内で3つの変数に明示的にNoneを代入する状況は避けたほうがいいように思う
441デフォルトの名無しさん (ガックシ 068b-OMnJ)
2024/08/09(金) 16:44:08.25ID:n/+vIJnt6 それはNoneだからってこと?それともどんな値でも変数に同じ値入れる書き方を避けろってこと? >>440
442デフォルトの名無しさん (ワッチョイ 0bb4-xNjE)
2024/08/09(金) 16:46:04.18ID:YhWPQaiH0 カレーが足りなくなるって意味ではないか?
443デフォルトの名無しさん (ワッチョイ c954-Egr9)
2024/08/09(金) 16:51:15.37ID:RWMssfNv0 C言語でNoneを表現したかったらどう書くんだろう
444デフォルトの名無しさん (ワッチョイ 1379-qdyN)
2024/08/09(金) 17:11:13.51ID:b1x0XXPu0 enum { None, Other }
445デフォルトの名無しさん (ワッチョイ b3ee-eg/E)
2024/08/09(金) 22:09:09.69ID:SHwt0dCa0 初心者質問で申し訳ないんだが、仮想環境ってソフト作るときの保全のためだよね?
別に入門書とか勉強してる間は仮想環境でやらなくてもいいよね?
別に入門書とか勉強してる間は仮想環境でやらなくてもいいよね?
446デフォルトの名無しさん (ワッチョイ c954-Egr9)
2024/08/09(金) 22:10:34.36ID:RWMssfNv0 普通に実用で使ってるけど環境なんか作ってない
447デフォルトの名無しさん (ワッチョイ b3ee-eg/E)
2024/08/09(金) 22:12:48.00ID:SHwt0dCa0448デフォルトの名無しさん (ワッチョイ c954-Egr9)
2024/08/09(金) 22:21:33.97ID:RWMssfNv0 みんな最新にしてて問題が起きなければそれでok
複数のバージョンを切り替えないといけない事態が発生した時に考える
複数のバージョンを切り替えないといけない事態が発生した時に考える
449デフォルトの名無しさん (ワッチョイ 1b01-gp7T)
2024/08/09(金) 22:55:56.94ID:OlqxUP9U0450デフォルトの名無しさん (ワッチョイ 0101-OMnJ)
2024/08/10(土) 04:21:40.95ID:+orWZu4Z0 階層上のpythonファイルをimportするとき相対パスの方が圧倒的に可読性高いと思うけど
頑なに絶対パスで書こうとする人ってなんなの
頑なに絶対パスで書こうとする人ってなんなの
451デフォルトの名無しさん (ワッチョイ a9be-n7CL)
2024/08/10(土) 08:10:56.63ID:QgqIePKL0 絶対に同じ環境でしか使わないぞと言う鋼の意思表示
452デフォルトの名無しさん (ワッチョイ 51b0-kcFJ)
2024/08/10(土) 08:22:50.16ID:1xdao/bW0 FSのパスじゃなくてsys.pathからのパスじゃないの?
それならトップから書いてても言うほど変ではない
どこまで階層掘ってるのかしらんけど
それならトップから書いてても言うほど変ではない
どこまで階層掘ってるのかしらんけど
453デフォルトの名無しさん (ワッチョイ a930-TAAs)
2024/08/10(土) 14:33:30.87ID:Co0E/0r+0 相対パスで通らなかったからだよ
454デフォルトの名無しさん (ワッチョイ c954-Egr9)
2024/08/10(土) 14:40:10.17ID:l9TUhztj0 動いてたものが、ちょっと起動の方法を変えたら動かなくなったりする
相対パスとかカレントから読むとかはやらないのが吉
相対パスとかカレントから読むとかはやらないのが吉
455デフォルトの名無しさん (ワッチョイ 6915-OMnJ)
2024/08/10(土) 16:20:46.44ID:Y8Ais/pl0 環境変えたら動かなくなる、ってそれ相対やらは関係ないのでは
456デフォルトの名無しさん (ワッチョイ c96e-OMnJ)
2024/08/10(土) 16:25:51.39ID:laPgG88d0457デフォルトの名無しさん (ワッチョイ c954-Egr9)
2024/08/10(土) 17:04:28.50ID:l9TUhztj0 変数を初期化する、というアイディアがあんまり無いんだろうな
何かを入れる為に変数を用意するんだから、入れる前の値なんかどうでもいい
何かを入れる為に変数を用意するんだから、入れる前の値なんかどうでもいい
458デフォルトの名無しさん (ワッチョイ 51b0-kcFJ)
2024/08/10(土) 17:20:32.64ID:1xdao/bW0 最適化にはつながらないけれど
複雑化が進むから変数はなるべく再代入したくないな
複雑化が進むから変数はなるべく再代入したくないな
459デフォルトの名無しさん (ワッチョイ c954-Egr9)
2024/08/10(土) 17:28:23.63ID:l9TUhztj0 予め何か入れておいて、判定なりループを抜けて、
一度も値が変更されなかった印として元の値が残ってる
というアルゴリズムは、自然ではあるし、読みにくくもないし、
昔からある定番のものだけど、バグの元なんだよな
必ず何かが入るようにして、もし漏れてたら参照時にエラーになる
という作りにした方が安全
一度も値が変更されなかった印として元の値が残ってる
というアルゴリズムは、自然ではあるし、読みにくくもないし、
昔からある定番のものだけど、バグの元なんだよな
必ず何かが入るようにして、もし漏れてたら参照時にエラーになる
という作りにした方が安全
460デフォルトの名無しさん (ワッチョイ b3ee-eg/E)
2024/08/10(土) 18:26:13.49ID:5o6SHZwH0 なんとなくyoutubeとか見ながらエディタはVScodeにしたけど
Pythonメインで使うなら後々パイチャームが良いみたいな感じになったりする?
どっちも使ったことある人おすえて
Pythonメインで使うなら後々パイチャームが良いみたいな感じになったりする?
どっちも使ったことある人おすえて
461デフォルトの名無しさん (スフッ Sd33-QylA)
2024/08/10(土) 23:55:03.51ID:oQf4NdPPd どっちでもいい
462デフォルトの名無しさん (ワッチョイ 6db1-C6u6)
2024/08/11(日) 10:42:41.95ID:Ss89Ryfu0 そ、そんな……
463デフォルトの名無しさん (ワッチョイ 5901-IiI/)
2024/08/11(日) 11:22:20.74ID:THlJTk2n0 >>456
それは別にいいと思うよ
避けたほうがいいと思うのは
def hoge(arg):
a = b = c = None
…
return a, b, c
とか
def hoge(arg):
a = b = c = None
…
return fuga
とか
それは別にいいと思うよ
避けたほうがいいと思うのは
def hoge(arg):
a = b = c = None
…
return a, b, c
とか
def hoge(arg):
a = b = c = None
…
return fuga
とか
464デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/11(日) 12:04:42.70ID:RDMWd10n0 C言語の頃の因習だよな
auto変数を宣言してもスタックからアドレスが確保されるだけで、
何が入ってるかは判らないので、必ず最初に初期化しましょうという文化が出来た
面倒なので、perlとかは初期化せずに参照しても初期化済ということになった
そんな手抜きをするとやっぱりバグるので、
未定義という状態を追加して、参照したらエラーが出るようにした
言語仕様が許してくれるからより安全な方法が使えるというだけで、
C言語に戻れば初期化しないなんて言語道断
auto変数を宣言してもスタックからアドレスが確保されるだけで、
何が入ってるかは判らないので、必ず最初に初期化しましょうという文化が出来た
面倒なので、perlとかは初期化せずに参照しても初期化済ということになった
そんな手抜きをするとやっぱりバグるので、
未定義という状態を追加して、参照したらエラーが出るようにした
言語仕様が許してくれるからより安全な方法が使えるというだけで、
C言語に戻れば初期化しないなんて言語道断
465デフォルトの名無しさん (スプッッ Sd0a-ukzR)
2024/08/11(日) 15:26:51.19ID:5SiizQbSd466デフォルトの名無しさん (ワッチョイ beaf-hgB2)
2024/08/11(日) 15:51:01.99ID:ajGyZG3Q0 2段落目3段落目のperlのundef話は違うような
467デフォルトの名無しさん (ワッチョイ 6dcc-ukzR)
2024/08/11(日) 16:06:10.84ID:C5P4dh5y0 その関数内で使う変数は全て、関数内の最初に宣言
ってのは違うと思うけど
重要なやつくらいは良いのでは・・?
ってのは違うと思うけど
重要なやつくらいは良いのでは・・?
468デフォルトの名無しさん (ワッチョイ c279-10fT)
2024/08/11(日) 16:50:21.66ID:kqf7VZo90 > そんな手抜きをするとやっぱりバグるので、
> 未定義という状態を追加して、参照したらエラーが出るようにした
全く違う言語でだけど
初期化をすると、このエラーを抑制してしまうため
未初期化を意味するような無駄な初期化は止めるような流れになった、とか
> 未定義という状態を追加して、参照したらエラーが出るようにした
全く違う言語でだけど
初期化をすると、このエラーを抑制してしまうため
未初期化を意味するような無駄な初期化は止めるような流れになった、とか
469デフォルトの名無しさん (ワッチョイ 8101-ukzR)
2024/08/11(日) 17:15:29.30ID:k+EvwTGb0 デフォルト引数も初期化宣言みたいなもんじゃないの?
関数アノテーションに組み込みでバリデーション機能がないわけで
宣言は仕方なくね
関数アノテーションに組み込みでバリデーション機能がないわけで
宣言は仕方なくね
470デフォルトの名無しさん (ワッチョイ 5901-IiI/)
2024/08/11(日) 18:47:02.80ID:THlJTk2n0 >>465
そうだよ
そうだよ
471デフォルトの名無しさん (ワッチョイ 6d72-TNaC)
2024/08/11(日) 18:53:04.00ID:2/3U6L920 まわしてるなら上書きされるし、except
a=0
にするだけやん
a=0
にするだけやん
472デフォルトの名無しさん (スッップ Sd62-ukzR)
2024/08/11(日) 19:36:57.58ID:p0V4Zmp7d >440の発言が曖昧で立ち位置がよくわからないのでまとめてみた
(1)複数宣言関係なく、変数宣言を避けたほうが良い
(2)a=b=c= のような複数宣言を避けたほうが良い
(3)複数宣言関係なく、 None の代入を避けたほうが良い
(4)a=b=c=None のように複数宣言かつNoneを避けたほうが良い
(1)>440 >1つの関数内で3つの変数に少なくとも複数にはこだわっている?ので(1)は無い
(2)特に言及なし
(3)>456→>463 >それは別にいい、とのことなので(3)は無い
(4)避けたい
そもそも>どちらかと言えば
だからNone以外もよろしく思っていないってことなので
(4)>(2)ってことだと思うが
>>470 >そうだよ
とのことなので、一番近いのは(4)
しかし>440 >書き方の問題とは別に
とあるのでまとめると
・明示的な
・複数の宣言
・Noneの代入
これらを避けたいってことが確定
じゃあ例えば、同じ関数内で
・明示的に
・ひとつaだけの宣言
・a=None
なら良いんだ?って疑問がある
ひとつは良くて、2つ、3つ、、はだめなの?
その線引きはどこなの?みたいな
(1)複数宣言関係なく、変数宣言を避けたほうが良い
(2)a=b=c= のような複数宣言を避けたほうが良い
(3)複数宣言関係なく、 None の代入を避けたほうが良い
(4)a=b=c=None のように複数宣言かつNoneを避けたほうが良い
(1)>440 >1つの関数内で3つの変数に少なくとも複数にはこだわっている?ので(1)は無い
(2)特に言及なし
(3)>456→>463 >それは別にいい、とのことなので(3)は無い
(4)避けたい
そもそも>どちらかと言えば
だからNone以外もよろしく思っていないってことなので
(4)>(2)ってことだと思うが
>>470 >そうだよ
とのことなので、一番近いのは(4)
しかし>440 >書き方の問題とは別に
とあるのでまとめると
・明示的な
・複数の宣言
・Noneの代入
これらを避けたいってことが確定
じゃあ例えば、同じ関数内で
・明示的に
・ひとつaだけの宣言
・a=None
なら良いんだ?って疑問がある
ひとつは良くて、2つ、3つ、、はだめなの?
その線引きはどこなの?みたいな
473デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/11(日) 19:41:48.53ID:RDMWd10n0 440の人そこまで考えてないと思うよ
474デフォルトの名無しさん (ワッチョイ e52a-Fna2)
2024/08/11(日) 19:51:35.98ID:hIF7GGOd0475デフォルトの名無しさん (スッップ Sd62-ukzR)
2024/08/11(日) 20:10:03.84ID:LHlML4lad (1)-(4)すべて1つの関数内での出来事なら何も漏れてないじゃん
476デフォルトの名無しさん (ワッチョイ 6e26-k00U)
2024/08/11(日) 21:31:42.64ID:CnADXAtN0 もうちょい中身のある話しない?
477デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/11(日) 22:12:38.31ID:RDMWd10n0 未定義である、Noneというオブジェクトである
みたいなことが変数に入ってて当然になってるけど、
C言語の時代から見たらミラクルなんだよな
00-ffしか入らない筈のuint8をint16に拡張して-1が返ったらエラー
くらいの苦し紛れしかできなかった
intだろうがfloatだろうがポインタだろうが何でも扱える状態で、
それでも特別な数を扱いたかったらどうしたらいいの
それはもう、全てオブジェクトにするしかない
みたいなことが変数に入ってて当然になってるけど、
C言語の時代から見たらミラクルなんだよな
00-ffしか入らない筈のuint8をint16に拡張して-1が返ったらエラー
くらいの苦し紛れしかできなかった
intだろうがfloatだろうがポインタだろうが何でも扱える状態で、
それでも特別な数を扱いたかったらどうしたらいいの
それはもう、全てオブジェクトにするしかない
478デフォルトの名無しさん (ワッチョイ e52a-Mft2)
2024/08/11(日) 23:18:34.32ID:hIF7GGOd0479デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/11(日) 23:22:10.48ID:RDMWd10n0 それはもう472しか興味ない話
480デフォルトの名無しさん (ワッチョイ 4217-ukzR)
2024/08/11(日) 23:43:17.68ID:kFb5FPwO0 >>440に対するレスかつ、結論の疑問が>同じ関数内で
と言ってるのに、限定されないケース持ち出すバカっているんですね
と言ってるのに、限定されないケース持ち出すバカっているんですね
481デフォルトの名無しさん (ワッチョイ 6e80-ukzR)
2024/08/11(日) 23:55:15.90ID:qxvMX8m80 まぁ決定的なのは
>1つの関数内で3つの変数に明示的にNoneを代入する状況
ほほう、なんで・・?
って部分の説明が一切されることなく
「いいと思うよ」「避けたほうが良い」
と感想レスでぐだぐだ消費してるところだわな
本来1,2ターンで終わる話やろ
>1つの関数内で3つの変数に明示的にNoneを代入する状況
ほほう、なんで・・?
って部分の説明が一切されることなく
「いいと思うよ」「避けたほうが良い」
と感想レスでぐだぐだ消費してるところだわな
本来1,2ターンで終わる話やろ
482デフォルトの名無しさん (ワッチョイ 6e5e-k00U)
2024/08/12(月) 00:03:43.33ID:3e/W6rSq0 もういいよ
483デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/12(月) 00:29:47.69ID:Df7qTgwp0 発端部分はどうでもいいんだよ
ただの戯言
そこは無視して、面白い話題に展開させるのが腕の見せどころ
ただの戯言
そこは無視して、面白い話題に展開させるのが腕の見せどころ
484デフォルトの名無しさん (ワッチョイ 1e01-IiI/)
2024/08/12(月) 17:05:54.78ID:RqyD79my0 >>472
まとめ内容はだいたい合ってるよ
>ひとつは良くて、2つ、3つ、、はだめなの?
>その線引きはどこなの?みたいな
1つなら点滅黄信号
2つなら点滅赤信号
3つ以上なら赤信号
くらいの運転感覚
状態変数は増えれば増えるほど関数が複雑化するので
可読性/保守性を下げない範囲で可能な限り減らしたほうがいいというのが大前提
Optional型の変数はNoneの場合のハンドリングが必要だから余計に複雑度が増す
だからNoneで明示的に初期化が必要な関数ローカルの状態変数が3つもあるのなら
リファクタリングを検討したほうがいいと思ってる
x=y=z=0のようなのも無条件で問題なしということではなくてNoneほどは気にしないだけ
まとめ内容はだいたい合ってるよ
>ひとつは良くて、2つ、3つ、、はだめなの?
>その線引きはどこなの?みたいな
1つなら点滅黄信号
2つなら点滅赤信号
3つ以上なら赤信号
くらいの運転感覚
状態変数は増えれば増えるほど関数が複雑化するので
可読性/保守性を下げない範囲で可能な限り減らしたほうがいいというのが大前提
Optional型の変数はNoneの場合のハンドリングが必要だから余計に複雑度が増す
だからNoneで明示的に初期化が必要な関数ローカルの状態変数が3つもあるのなら
リファクタリングを検討したほうがいいと思ってる
x=y=z=0のようなのも無条件で問題なしということではなくてNoneほどは気にしないだけ
485デフォルトの名無しさん (ワッチョイ 6e5e-k00U)
2024/08/12(月) 17:20:13.21ID:3e/W6rSq0 Optionはモナドがないと単にチェックが面倒なだけなんで要りません
486デフォルトの名無しさん (ワッチョイ 65a0-ukzR)
2024/08/12(月) 17:41:21.72ID:kQJ3Ra+V0 やはり主観の感覚で言ってただけか
487デフォルトの名無しさん (ワッチョイ 06ad-ukzR)
2024/08/12(月) 17:46:09.35ID:t+JXHNsb0 数値型でも無意識にstrに変換されたりするので
むしろ気休めで宣言することでコードの可読性が上がるケースはあるな
むしろ気休めで宣言することでコードの可読性が上がるケースはあるな
488デフォルトの名無しさん (ワッチョイ 8101-mJNK)
2024/08/12(月) 22:12:29.66ID:piSTAl/Q0 >>429
簡単なものならどれも作れるだろ
簡単なものならどれも作れるだろ
489デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/12(月) 22:13:50.74ID:Df7qTgwp0 作れるもんなら作ってみれ
490デフォルトの名無しさん (ワッチョイ 8101-mJNK)
2024/08/12(月) 22:17:45.91ID:piSTAl/Q0 PyQtのデモに簡単なものがありそうなものばかりなんだが
491デフォルトの名無しさん (ワッチョイ d24a-ukzR)
2024/08/12(月) 22:21:04.23ID:/YNzioSd0 何を以て作ったと言えるか定義にもよるよな
ライブラリ使っちゃいけない縛りだったら絶対やろうと思わないわ
ライブラリ使っちゃいけない縛りだったら絶対やろうと思わないわ
492デフォルトの名無しさん (ワッチョイ 8101-mJNK)
2024/08/12(月) 22:30:00.09ID:piSTAl/Q0 Pythonはライブラリが豊富だから使われているんだから、ライブラリを使うことが前提条件だよね
493デフォルトの名無しさん (ワッチョイ 8101-mJNK)
2024/08/12(月) 22:32:25.47ID:piSTAl/Q0 ライブラリの中には、自分のプロジェクトに合わない法的縛りがある場合があるからそういうのは除外しないといけないけど
494デフォルトの名無しさん (ワッチョイ 6219-vl8G)
2024/08/13(火) 05:10:08.20ID:OFJnbVf+0 法的w
495デフォルトの名無しさん (ワッチョイ 92ee-Xdjv)
2024/08/14(水) 01:06:20.97ID:UXFppRKs0 Python初心者に「このライブラリ面白いから入れて遊んでみ」ってやつでおすすめある??
496デフォルトの名無しさん (ワッチョイ 09c8-EAYk)
2024/08/14(水) 01:17:50.66ID:Nyjt3p2D0 sleniumかのう
497デフォルトの名無しさん (ワッチョイ e24b-xVop)
2024/08/14(水) 02:23:20.75ID:W/sfDy9u0 >>495
これが便利だけど、Listboxウィジェットでないと動作しなかったよ
でもListboxで十分
https://office54.net/python/tkinter/file-drag-drop
これが便利だけど、Listboxウィジェットでないと動作しなかったよ
でもListboxで十分
https://office54.net/python/tkinter/file-drag-drop
498デフォルトの名無しさん (ワッチョイ c173-Xp5Y)
2024/08/14(水) 03:01:41.34ID:XIgNdm080 Streamlit
499デフォルトの名無しさん (ワッチョイ 069b-ukzR)
2024/08/14(水) 06:52:49.57ID:JNnpce7i0 1年前くらいにStreamlitでめっちゃ遊んでたが
あれから何か進展あったかな
当時は2段以上のページ遷移の実装がめんどくさかった記憶
あれから何か進展あったかな
当時は2段以上のページ遷移の実装がめんどくさかった記憶
500デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/14(水) 09:36:06.91ID:YQXXxccb0 a系列とb系列の同じ数のデータがあって、
a系列の値でソートしたb系列のデータが欲しい
どういうデータの持ち方をするのが一番適切だろう
a系列の値でソートしたb系列のデータが欲しい
どういうデータの持ち方をするのが一番適切だろう
501デフォルトの名無しさん (ワッチョイ e501-AQgI)
2024/08/14(水) 12:13:31.29ID:iBvZxVPY0 >>500
どういうデータの持ち方をするのが一番適切なのかは
そのデータにまつわるすべてのCRUD操作について
頻度・データ量・性能要件などの詳細を明確にしてから検討するもの
a系列の値でソートしたb系列のデータが欲しいという
一つの操作だけで判断できるものではない
どういうデータの持ち方をするのが一番適切なのかは
そのデータにまつわるすべてのCRUD操作について
頻度・データ量・性能要件などの詳細を明確にしてから検討するもの
a系列の値でソートしたb系列のデータが欲しいという
一つの操作だけで判断できるものではない
502デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/14(水) 12:49:52.86ID:YQXXxccb0 a[i]とb[i]の場合
sorted(range(len(a)), key=lambda x: a[x])
l[i]['a']とl[i]['b']の場合
sorted(l, key=lambda x: x['a'])
l[i].aとl[i].bの場合
sorted(l, key=lambda x: x.a)
もっとすっきりと、
sorted(l, key=a)
みたいに書けないものか
sorted(range(len(a)), key=lambda x: a[x])
l[i]['a']とl[i]['b']の場合
sorted(l, key=lambda x: x['a'])
l[i].aとl[i].bの場合
sorted(l, key=lambda x: x.a)
もっとすっきりと、
sorted(l, key=a)
みたいに書けないものか
503デフォルトの名無しさん (アウアウエー Sa4a-ZlnX)
2024/08/14(水) 14:51:05.74ID:92pG5tQ9a >>500
pandas
pandas
504デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 09:30:21.30ID:7XNNm+7n0 a[i]とb[i]の場合は
sorted(zip(a, b), key=lambda x: x[0])
こんなんでもいい
sorted(zip(a, b), key=lambda x: x[0])
こんなんでもいい
505デフォルトの名無しさん (ワッチョイ 2ed6-nIDn)
2024/08/15(木) 09:31:33.49ID:IOoAsN9I0 keyいらん
506デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 09:33:42.86ID:7XNNm+7n0 そうだった
1つ目のタプルでソートするんだった
忘れてるくらいだから、暗黙として使うと読めなくなりそう
1つ目のタプルでソートするんだった
忘れてるくらいだから、暗黙として使うと読めなくなりそう
507デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 09:44:05.66ID:7XNNm+7n0 そうすると、key要らない個別リストで持つのが一番シンプルだな
格納方法の手間はそれぞれでかなり違ってて、
個別リストは個別にappendするだけ
辞書は準備できたらセットでappend
classは当然classが必要 タイミング等は辞書と同等
要素2個ならリストでいいけど、3個以上のものを個別に持つのは気持ち悪いので、
そんなデータ構造なら他の理由からもclassが楽だろう
でも2個のケースが圧倒的に多い
格納方法の手間はそれぞれでかなり違ってて、
個別リストは個別にappendするだけ
辞書は準備できたらセットでappend
classは当然classが必要 タイミング等は辞書と同等
要素2個ならリストでいいけど、3個以上のものを個別に持つのは気持ち悪いので、
そんなデータ構造なら他の理由からもclassが楽だろう
でも2個のケースが圧倒的に多い
508デフォルトの名無しさん (ワッチョイ c119-Xp5Y)
2024/08/15(木) 09:59:05.23ID:hgBkEHHk0 独自の振る舞い与えたりやインターフェースにしたいならクラスで書いてもいいけど
Pandasが楽でいろいろ手厚い
有名だから他人の理解も得られやすいし
Pandasが楽でいろいろ手厚い
有名だから他人の理解も得られやすいし
509デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 10:31:29.70ID:7XNNm+7n0 要は2次元配列を扱おうとしていて、pythonにそんなデータ構造は無いから苦労してるだけなんだよな
numpyを入れれば解決するかというと、
やってやれなくはないけど、逆に複雑なことになってしまう
もう一重被せてpandas、ということなんだけど、pandasはあんまり近寄りたくないんだよな
numpyを入れれば解決するかというと、
やってやれなくはないけど、逆に複雑なことになってしまう
もう一重被せてpandas、ということなんだけど、pandasはあんまり近寄りたくないんだよな
510デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 10:48:30.73ID:7XNNm+7n0 polarsの場合
df.select(pl.col('val', 'name').sort_by('val'))
抽象化が進む
selectが要るのは、そういうものなのだろう
df.select(pl.col('val', 'name').sort_by('val'))
抽象化が進む
selectが要るのは、そういうものなのだろう
511デフォルトの名無しさん (ワッチョイ 0925-XFPU)
2024/08/15(木) 13:32:50.80ID:l9rIXl+/0 特定のHPを開くやつ作ったんだけど
こんなエラー出る。 詳しい人意味と対策教えてください
DevTools listening on ws://127.0.0.1:54343/devtools/browser/87ef9d15-6c10-4859-ad8e-0f40190709a3
[4184:21844:0815/132851.755:ERROR:ssl_client_socket_impl.cc(883)] handshake failed; returned -1, SSL error code 1, net_error -107
[4184:21844:0815/132851.760:ERROR:ssl_client_socket_impl.cc(883)] handshake failed; returned -1, SSL error code 1, net_error -100
こんなエラー出る。 詳しい人意味と対策教えてください
DevTools listening on ws://127.0.0.1:54343/devtools/browser/87ef9d15-6c10-4859-ad8e-0f40190709a3
[4184:21844:0815/132851.755:ERROR:ssl_client_socket_impl.cc(883)] handshake failed; returned -1, SSL error code 1, net_error -107
[4184:21844:0815/132851.760:ERROR:ssl_client_socket_impl.cc(883)] handshake failed; returned -1, SSL error code 1, net_error -100
512デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/15(木) 13:42:48.29ID:7XNNm+7n0 Seleniumよりいいの?
513デフォルトの名無しさん (ワッチョイ 6219-vl8G)
2024/08/15(木) 15:02:01.87ID:wvw+pa8M0 >>495
omanko
omanko
514デフォルトの名無しさん (ワッチョイ 4601-+pRy)
2024/08/15(木) 15:10:49.80ID:WrspfLfR0 >>505>>506
sorted(zip(a, b))とsorted(zip(a, b), key=lambda x: x[0])はソート結果が違うので要件を見極めてから使い分けてね
sorted(zip(a, b))とsorted(zip(a, b), key=lambda x: x[0])はソート結果が違うので要件を見極めてから使い分けてね
515デフォルトの名無しさん (ワッチョイ 6273-k00U)
2024/08/15(木) 15:51:14.21ID:FZXdmvv90516デフォルトの名無しさん (ワッチョイ 0910-EAYk)
2024/08/16(金) 14:50:00.96ID:csQM6Qg30517デフォルトの名無しさん (ワッチョイ 92ee-Xdjv)
2024/08/16(金) 16:30:40.64ID:ghvDT0nG0 kindleのアンリミテッド対象でオススメの入門とかある??
518デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 16:52:04.12ID:Lkm5DKgc0 無いだろうな
基礎的なことはネットで足りる
進歩的な内容は金かかる
effective pythonの旧版がamazonで送料込み500円しないので、それをポチる
基礎的なことはネットで足りる
進歩的な内容は金かかる
effective pythonの旧版がamazonで送料込み500円しないので、それをポチる
519デフォルトの名無しさん (ワッチョイ 4202-mJNK)
2024/08/16(金) 18:05:55.70ID:djtLdUd20 python使い始めたが、
配列のdeepcopyじゃなく、copyって何に使うの?
コピー元の値も変わっちゃうけど
配列のdeepcopyじゃなく、copyって何に使うの?
コピー元の値も変わっちゃうけど
520デフォルトの名無しさん (ワッチョイ 6d75-5TJn)
2024/08/16(金) 18:11:44.26ID:6tCTFnFi0 別名
521デフォルトの名無しさん (ワッチョイ 1e01-OaJM)
2024/08/16(金) 18:15:45.87ID:mRy6k/zm0 >>519
shallow copyとdeep copyという一般概念を学んでくれ
ChatGPTにでも聞けば丁寧に教えてくれるはず
それ後に
なぜコピー元の値も変わっちゃうと思っちゃったかを振り返ってくれ
shallow copyとdeep copyという一般概念を学んでくれ
ChatGPTにでも聞けば丁寧に教えてくれるはず
それ後に
なぜコピー元の値も変わっちゃうと思っちゃったかを振り返ってくれ
522デフォルトの名無しさん (ワッチョイ 6219-TmDL)
2024/08/16(金) 18:16:18.01ID:GehV+MKu0 >>519
それは用語のセンスがなかっただけ
それは用語のセンスがなかっただけ
523デフォルトの名無しさん (ワッチョイ 6219-TmDL)
2024/08/16(金) 18:17:23.95ID:GehV+MKu0 >>521
そもそもちゃんとドキュメントや書籍を読めよ!
そもそもちゃんとドキュメントや書籍を読めよ!
524デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 18:38:35.65ID:Lkm5DKgc0 https://i.imgur.com/Jw8AJnB.png
主に自分の理解用教材画像
ただの代入はコピーではなく別名定義
コピー元を変えるとコピー先も当然変わる
copyは別オブジェクトを生成する
コピー元を変えても(浅いレベルなら)コピー先は変わらない
copyであっても、オブジェクトの中身はただのクローンなので変わってしまう
中身も変えたくない場合はdeeocopy
主に自分の理解用教材画像
ただの代入はコピーではなく別名定義
コピー元を変えるとコピー先も当然変わる
copyは別オブジェクトを生成する
コピー元を変えても(浅いレベルなら)コピー先は変わらない
copyであっても、オブジェクトの中身はただのクローンなので変わってしまう
中身も変えたくない場合はdeeocopy
525デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 18:43:15.00ID:Lkm5DKgc0 deepcopy使ったのは、再帰でパズル解いた時くらいだな
分岐先に渡したデータを変更しても戻った時には保存されてないといけない
分岐先に渡したデータを変更しても戻った時には保存されてないといけない
526デフォルトの名無しさん (ワッチョイ b292-6gAB)
2024/08/16(金) 19:06:56.83ID:nKGchtUv0527デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 19:20:56.16ID:Lkm5DKgc0 参照するだけならクローンもコピーも不要なんだよな
わざわざcopyするということは、その後どちらかを書き換える前提な訳で
書き換えるけどshallowしか使わない設計にしてるから大丈夫な筈
という綱渡りをしてるとしか思えない
わざわざcopyするということは、その後どちらかを書き換える前提な訳で
書き換えるけどshallowしか使わない設計にしてるから大丈夫な筈
という綱渡りをしてるとしか思えない
528デフォルトの名無しさん (ワッチョイ 6d0e-u7mq)
2024/08/16(金) 20:09:34.83ID:l1JK1BDI0 >>527
コピーは割とよく使われるぞ
以下のような関数呼び出しでも x から data へのシャローコピーが起きるし
def func(data: list[int]):
print(data)
x = [1, 2, 3]
func(x)
処理を分割することはよくあるので、そうと認識してないかもしれないけど、コピーは自然に使われてる
補足すると、これをコピーでなく参照渡しと思う人もいるかもしれないけど、それはよくある誤解
なぜなら、funcの中で data が指すリストの中身を変更することはできるけど、呼び出し元の x にstr など別の値を代入することはできないため
funcの引数dataは呼び出し元の変数xではなく、xからコピーされたものが渡されている
コピーは割とよく使われるぞ
以下のような関数呼び出しでも x から data へのシャローコピーが起きるし
def func(data: list[int]):
print(data)
x = [1, 2, 3]
func(x)
処理を分割することはよくあるので、そうと認識してないかもしれないけど、コピーは自然に使われてる
補足すると、これをコピーでなく参照渡しと思う人もいるかもしれないけど、それはよくある誤解
なぜなら、funcの中で data が指すリストの中身を変更することはできるけど、呼び出し元の x にstr など別の値を代入することはできないため
funcの引数dataは呼び出し元の変数xではなく、xからコピーされたものが渡されている
529デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 20:11:22.47ID:Lkm5DKgc0 参照しかしないなら怖くもなんともない
530デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 20:15:51.59ID:Lkm5DKgc0 https://i.imgur.com/vnmAGYS.png
こんな風に、簡単に壊れてしまう
こんな風に、簡単に壊れてしまう
531デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 20:19:07.36ID:Lkm5DKgc0532デフォルトの名無しさん (ワッチョイ 2ed6-xIub)
2024/08/16(金) 20:19:17.75ID:HvNqjSRc0 >>528はコピーではない
533デフォルトの名無しさん (ワッチョイ fd54-WSZc)
2024/08/16(金) 20:32:15.57ID:Lkm5DKgc0534デフォルトの名無しさん (ワッチョイ 2ed6-xIub)
2024/08/16(金) 20:35:35.86ID:HvNqjSRc0 参照の値渡しと参照の違いを学んで混同したんだろう
535デフォルトの名無しさん (ワッチョイ 6d0e-u7mq)
2024/08/16(金) 20:45:28.33ID:l1JK1BDI0 すまねえこれは自分の勘違いだ
x = [1, 2, 3]
y = x
z = x.copy()
のyの動作もシャローコピーと看做せると認識してて、関数の引数の挙動はこれと同じであると言いたかった
参照渡しではないというのは、C++やC#にあるような参照渡しはできない (呼び出し元の変数に別の値を代入することはできない) というのが主張
x = [1, 2, 3]
y = x
z = x.copy()
のyの動作もシャローコピーと看做せると認識してて、関数の引数の挙動はこれと同じであると言いたかった
参照渡しではないというのは、C++やC#にあるような参照渡しはできない (呼び出し元の変数に別の値を代入することはできない) というのが主張
536デフォルトの名無しさん (ワッチョイ 6d9a-Ud1O)
2024/08/16(金) 20:49:44.47ID:Z05myL510 pythonに参照渡しは存在しない
というのは暴言か
というのは暴言か
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- いじめ後遺症 15年前のトラウマに苦悩する当事者「夢の中に出てくる」「された側は一生ものの傷」 [♪♪♪★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 東京の自販機そばに金塊4200万円分、何者かに持ち去られる…札幌の50代が8000万円振り込んだ後に上京して被害 [どどん★]
- 永野ってなんで売れたの?
- お前「趣味……?ないですね。無趣味です」ぼく「ずっと2chしてるんだから2chが趣味でいいじゃん」前「?」
- 武論尊「ヤクザも政治家も一切取材したことない。空想だからあんなにかっこよく描ける」 [309323212]
- 隕石の落ちたところに俺が立ってたら
- 🏡パン🍞つー✌まる👌見え👊😅👊
- 【正論】検察「山上よ、どんな事情があろうと暴力が許されない」 [442080748]
