[過去ログ] Pythonのお勉強 Part73 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
851: (ワッチョイ 2728-k4Tl) 2024/09/06(金)17:12 ID:kb80ato/0(8/10)調 AAS
>>850
Python落として、visual studioとあと何が必要?
852: (ワッチョイ 2728-k4Tl) 2024/09/06(金)17:15 ID:kb80ato/0(9/10)調 AAS
↑で紹介してくれた人、書籍出してるんだな
それも買います
853: (ワッチョイ bf57-a21C) 2024/09/06(金)18:29 ID:B348q7Ai0(1)調 AAS
Pythonとvscodeがあればその動画の内容くらいなら十分できるだろう
854
(1): (ワッチョイ e779-g3wY) 2024/09/06(金)18:30 ID:060imtVw0(1/2)調 AAS
サプー3D前の方が好き
855
(1): (ワッチョイ 07b7-fene) 2024/09/06(金)19:19 ID:jTHLjygZ0(1)調 AAS
>>854
本の表紙がかわいい
856
(1): (ワッチョイ 276a-55Je) 2024/09/06(金)19:48 ID:PgSZcrVr0(1)調 AAS
>>844
自分が勉強した順。
PaizaというサイトでPython3に関してはある程度の部分まで無料で学べる。
講座は動画、各項目毎に小テスト。
とりあえずは環境を整えなくてもオンライン上で実行環境が用意されている。
自分はそこで最低限の文法を勉強してから他の動画やネット上のソースを見たりした。
見たソースは、最初のうちは極力ソース内のあちこちに細かく「〇〇する」とか」コメントがあるもの。
そういうものを見て「あー、この部分数行でファイルを読み込むんだ」とか、
「こうやって流れを繋げていくんだ」ってのを理解した。
857: (ワッチョイ e7f9-g3wY) 2024/09/06(金)21:20 ID:060imtVw0(2/2)調 AAS
>>855
表紙かわいい
858: (ワッチョイ 277a-k4Tl) 2024/09/06(金)22:41 ID:kb80ato/0(10/10)調 AAS
みんなありがとう
色々実践してみます
859
(1): (ワッチョイ 6754-DWku) 2024/09/07(土)09:57 ID:wncxx9TU0(1/7)調 AAS
>>776を作ってみた
取得した結果を入れておく場所と、見つかったかどうかのフラグと、セマフォをglobalで共有する
フラグは本当は呼び出し側で処理したかったけど、result()を得ようとしたら終了待ちするので意味がない
履歴を記録しておくファイルもあって、その都度開いて追記して閉じる
他のスレッドと衝突しないかどうかは運次第
860: (ワッチョイ 479f-7hP0) 2024/09/07(土)10:13 ID:frLS0o200(1/2)調 AAS
スレッドじゃなく別プロセスでやればええんでは
ライブラリが行うプールの管理だけで済む
861: (ワッチョイ 7fdb-8MDM) 2024/09/07(土)11:35 ID:vd/lqcQo0(1)調 AAS
それな
おれも普通にプロファイル作ってるわ
ただ1プロファイルにつきたしか600MBくらい使ったけど
862
(1): (ワッチョイ 6754-DWku) 2024/09/07(土)12:27 ID:wncxx9TU0(2/7)調 AAS
プロセスを別にするのは重い計算とかでCPUコアを分けたい時で、
ネットワークの待ち時間の間に他のことをしたいだけなのでスレッドでいい
863: (ワッチョイ c7f0-rxv+) 2024/09/07(土)13:58 ID:j/xwjrvk0(1)調 AAS
>>859
そんなことしなくてもselenium grid使えば全部自動でやってくれるぞ
自前実装したいのなら勝手にやればいいけど
864: (ワッチョイ 479f-7hP0) 2024/09/07(土)16:04 ID:frLS0o200(2/2)調 AAS
>>862
マイコンやキオスク端末ならわかるけど
デスクトップOSなんてプロセス無数に動いてる
コンテキスト切り替えが多発したりリソース気にするんじゃなけれりゃ
たいしてスレッドにこだわる意味はない
Chromeもプログラム構成優先してがんがんプロセス生成してる
865: (ワッチョイ 6754-DWku) 2024/09/07(土)16:47 ID:wncxx9TU0(3/7)調 AAS
別に拘りは無い
どっちでも同じ
コード上もThreadPoolExecutorをProcessPoolExecutorと書き換えるだけ

実際の中身の処理はかなり変わるけど、どっちにしろ待ち時間が大半なので何も変わらない
processである必要が無いのにprocessにしてあると、なんで???と思われるだけ
866
(1): (ワッチョイ df90-XDF5) 2024/09/07(土)18:09 ID:Zt7rxXUV0(1)調 AAS
seleniumは並行に大量のページにアクセスするのには向かない
I/O待ちでもブロッキングするしかなくセッション単位で別のブラウザーインスタンスが必要だからリソース馬鹿喰い

今は代替ツールがあるので新しく書くコードならそっちを使う
867
(1): (ワッチョイ 6754-DWku) 2024/09/07(土)18:49 ID:wncxx9TU0(4/7)調 AAS
seleniumは多重処理関係なく重いというか大げさだけどね
本物のブラウザそのものだし

互換品や簡易版で動くようなサイトなら、最初からrequestsで済ませるけど、
本物じゃないと動作が怪しいなら本物を使うしかない
868: (ワッチョイ e738-NFcD) 2024/09/07(土)19:00 ID:zesuODdH0(1/3)調 AAS
はやさなら
パンダ<美汁<セレン
869: (ワッチョイ e738-NFcD) 2024/09/07(土)19:01 ID:zesuODdH0(2/3)調 AAS
間違った反対
870: (ワッチョイ 6754-DWku) 2024/09/07(土)19:14 ID:wncxx9TU0(5/7)調 AAS
重いだけで済むんだから楽なもん
perlでmechanizeとか紹介されてて、なんか便利そうだと思って使ってみても、
便利でも何でもない
スクリプトとかあったら人間が解析しないといけない

selenium使ってさえ、取得したpage_sourceがスクリプトの塊で、
謎に分割されてたり、jsonっぽいけどjsonじゃなかったり、
スクレイピング避けのいたちごっこが続いている
871: (ワッチョイ e738-NFcD) 2024/09/07(土)19:18 ID:zesuODdH0(3/3)調 AAS
デスクトップ上の座標でクリックしてけばいい
872
(1): (ワッチョイ 87e6-n0L+) 2024/09/07(土)21:26 ID:o9ae9Qt50(1/4)調 AAS
seleniumでウェブの操作を行うプログラムを持っているのですが、おそらくグーグルchromeのアップデートが原因で動かなくなりました
実行後、何も処理せずに落ちてしまうのでエラー内容すら見られません
chromeのバージョンは128.0.6613.120
chromeドライバーのバージョンは128.0.6613.119の32bitです
ドライバーを旧バージョンから最新バージョンに上書きするだけではダメなんですかね?
873: (ワッチョイ 6754-DWku) 2024/09/07(土)21:29 ID:wncxx9TU0(6/7)調 AAS
実際に使ってるブラウザとseleniumのドライバを合わせないといけない
みたいな努力は割と前に不要になった
874
(1): (ワッチョイ 87e6-n0L+) 2024/09/07(土)22:06 ID:o9ae9Qt50(2/4)調 AAS
エラーのスクショが撮れました
何が悪いのか分かる方いたらご教示お願いします
https://i.imgur.com/Jqpd9a5.png

875
(1): (ワッチョイ 6754-DWku) 2024/09/07(土)22:08 ID:wncxx9TU0(7/7)調 AAS
from selenium import webdriver
with webdriver.Chrome() as driver:
みたいに書く
876: (ワッチョイ 87e6-n0L+) 2024/09/07(土)22:22 ID:o9ae9Qt50(3/4)調 AAS
>>875
その2行目を付け足したら速攻で落ちるようになりました…
webdriver.Chrome()の()の中に、
エラー画像の4行目のservice=ChromeServiceなんたらかんたらをいれるのかな?とよく分からないながらやってみても変わらず
877: (ワッチョイ 2701-C5B1) 2024/09/07(土)22:28 ID:2iOJWTB70(1)調 AAS
>>867
>>866に書いてること1ミリも理解してなくて草

普通にブラウザ使ってれば
あるサイトのリクエスト完了を待ってる間に
違うタブで別サイトにリクエストを出すことができることくらいはわかるよね?

seleniumではそれが出来ない
同じことを達成したければ一つ一つ別プロファイル作って
専用のブラウザインスタンスを立ち上げないといけない

seleniumだけでなくrequestsもmechanizeも全部非同期に対応してないので
量をさばく必要がある場合に使う道具ではなくなってる
878
(1): (ワッチョイ 87e6-n0L+) 2024/09/07(土)22:39 ID:o9ae9Qt50(4/4)調 AAS
>>872のソースはこれです
コードは極力削っています
https://i.imgur.com/kgfDXeE.png

879
(1): (ワッチョイ e7d4-g3wY) 2024/09/07(土)23:50 ID:57KCZCA60(1)調 AAS
>>878
同じバージョンだけど動いてyahoo見れるな…
880
(1): (オッペケ Srbd-bQm6) 2024/09/08(日)03:12 ID:5mVESwIRr(1)調 AAS
>>879
マジですか…
数か月くらい動かしていない期間があって、久しぶりに昨日動かそうとしたらエラーが出て…
WinError 193の対処法として紹介されていた、
service = ChromeService(ChromeDriverManager().install())によって作成されるChrome Driverのキャッシュを消すというものも効果なし
それ以外のエラーはよく分からず
881
(1): (ワッチョイ f16a-OVBJ) 2024/09/08(日)09:00 ID:6sSIgrGd0(1/2)調 AAS
>>880
その記述って自動で適切なChromeDriverをダウンしてきてくれるみたいだけど、出てるエラーはChromeDriverと合ってないから実行できないよ、っていう事らしい。
自動で上手くいかずキャッシュを消してもダメなら自動を止めて、ChromeDriverの各バージョンを片っ端から手動でダウンして試してエラーの出ないchromedriver.exeをどこかのフォルダに置いといて直接指定すれば良いのでは?と思うけどそれじゃダメなの?
882
(1): (ワッチョイ 7501-+J7s) 2024/09/08(日)11:55 ID:r0meOORq0(1)調 AAS
>>874
webdriver_managerのバージョンも最新に
883
(1): (ワッチョイ 8956-x2r9) 2024/09/08(日)16:48 ID:FaHdpY160(1/3)調 AAS
それね
俺も先月業務アプリが動かなくて困った記憶あるわ
結論から言うとwebdriver_managerはもういらない
selenium単独で自動的に最新のdriverを取得することができるみたい

```
from selenium import webdriver

options = webdriver.ChromeOptions()
'''オプションがあれば追加'''
options.add_argument('--start-maximized')

driver = webdriver.Chrome(options=options)

try:
driver.get("http://google.co.jp")

except Exception as e:
print(e)

finally:
driver.quit()
```
884: (ワッチョイ 8956-x2r9) 2024/09/08(日)16:55 ID:FaHdpY160(2/3)調 AAS
ちなみにSeleniumバージョン4.6以上が必要らしいので注意ね

ここを参考にするといいよ
https://yuki.world/python-selenium-chromedriver-auto-update/
885: (ワッチョイ 911d-sF61) 2024/09/08(日)18:21 ID:ZvPXoPz+0(1/11)調 AAS
>>839
で色々とアドバイスもらった者です

サプーさんの書籍も購入したんだけど,ある程度、初心者を抜けるか抜けないかの人向けだね、これ

ほんとにプログラミングについては知識ゼロなので、動画以外でこの前段階の超入門書みたいなのでオススメあれば教えていただきたい
886
(1): (ワッチョイ 4954-okkI) 2024/09/08(日)18:31 ID:zGDX69KT0(1/6)調 AAS
サプー動画の最初の方は、これ以上ないくらい初心者向けだろう
さすがに見てないので判り易いかどうかは知らない
887: (ワッチョイ 911d-sF61) 2024/09/08(日)18:36 ID:ZvPXoPz+0(2/11)調 AAS
>>886
とりあえず2時間のやつで雰囲気掴んだ後に、どれを見ればいいのかわかんないのよね…

あと書籍っていうある程度まとめて基礎の基礎何詰まってるモノが欲しいんだ
いつでも読めるように
888: (ワッチョイ 911d-sF61) 2024/09/08(日)18:40 ID:ZvPXoPz+0(3/11)調 AAS
プログラムはできるだけシンプルで、うまく動かなかったり不具合出た時に、他の人でも修正位置がわかりやすく、後から機能を追加しやすいフレキシブルなモノが良いってのはなんとなくわかるのよ…

まず、それを書く知識が全くと言っていいほどないんだよね🙃
889
(2): (ワッチョイ 911d-sF61) 2024/09/08(日)18:42 ID:ZvPXoPz+0(4/11)調 AAS
なので、どの動画が自分の欲しい情報解説してあるモノなのかの判断もつかない状態です
890
(1): (ワッチョイ 8aa5-f0zi) 2024/09/08(日)18:45 ID:nFVqfsuv0(1/4)調 AAS
>>889
さっさと実務をやった方がいいです。
ダサいコードが仕様変更に耐えられるコードです。
891
(1): (ワッチョイ 911d-sF61) 2024/09/08(日)18:47 ID:ZvPXoPz+0(5/11)調 AAS
>>890
とりあえず組みたいプログラムに取り掛かれって事?
892
(1): (ワッチョイ 4954-okkI) 2024/09/08(日)18:47 ID:zGDX69KT0(2/6)調 AAS
https://www.youtube.com/watch?v=tCMl1AWfhQQ
2時間てこれか
いいのあるじゃん

これでオリエンテーションは終わりなので、あとは好きなことをやればいい
893
(1): (ワッチョイ 8aa5-f0zi) 2024/09/08(日)18:47 ID:nFVqfsuv0(2/4)調 AAS
書籍を書いているのはプロじゃないので、モジュールの切り出しすらも説明していない。
894: (ワッチョイ 8aa5-f0zi) 2024/09/08(日)18:48 ID:nFVqfsuv0(3/4)調 AAS
>>891
自分自身が使うものを作る。あとから変えようとしたときにこう作るんじゃなかったと気づく。
895
(1): (ワッチョイ 8aa5-f0zi) 2024/09/08(日)18:50 ID:nFVqfsuv0(4/4)調 AAS
実務の意味がわからないというのは学生なのかな?
896: (ワッチョイ 911d-sF61) 2024/09/08(日)18:50 ID:ZvPXoPz+0(6/11)調 AAS
>>895
プログラミングの用語とかも知らんのです
897: (ワッチョイ ed26-5gfH) 2024/09/08(日)18:53 ID:SEDRCJr/0(1)調 AAS
全くのプログラミング初心者なら
「プログラムはなぜ動くのか」
辺りかな
898: (ワッチョイ 911d-sF61) 2024/09/08(日)18:57 ID:ZvPXoPz+0(7/11)調 AAS
>>892
これは↑でオススメしてもらった
これを繰り返し見つつ、同時進行していく感じかー

ありがとう
実践しながらやってみるわ

最初の方から結構「???」ってなる部分も多いんだんだけどもw
899: (ワッチョイ 911d-sF61) 2024/09/08(日)19:02 ID:ZvPXoPz+0(8/11)調 AAS
>>893
なんか良い、こんなオレでも比較的理解できる良い書籍あります?
900
(2): (ワッチョイ f16a-OVBJ) 2024/09/08(日)19:24 ID:6sSIgrGd0(2/2)調 AAS
>>889
>どの動画が自分の欲しい情報解説してあるモノなのかの判断もつかない状態

>>856読んで貰えてないんだね。
Paizaってサイトではそういう人でも分かるように順序立てて基本的な文法を動画で解説してくれてる。
他の言語の場合は冒頭のみであとは有料だけど、Pathon3だけはある程度の部分まで無料公開してくれてる。
ここで無料公開分を全部終了できれば初心者向けの動画とか解説サイトとかもそれなりに理解できるようになると思う。
お金掛からないしとりあえずやってみたら?
901: (ワッチョイ 911d-sF61) 2024/09/08(日)19:26 ID:ZvPXoPz+0(9/11)調 AAS
>>900
呼んだっす!
コピペして、学ぶ順序のリストにさせてもらった
902: (ワッチョイ 911d-sF61) 2024/09/08(日)19:30 ID:ZvPXoPz+0(10/11)調 AAS
助言で具体的なものは全て書き出したり、登録、購入検討してる

ただ昨日の今日で、サプーさんの書籍も今目を通したとこなので、リストの優先順位を判断できてなくて
903: (ワッチョイ c5e6-bQm6) 2024/09/08(日)19:31 ID:SLqL4HNM0(1)調 AAS
>>881,882,883
ありがとうございます!
時間あるときにチャレンジしてみます!
904: (ワッチョイ 911d-sF61) 2024/09/08(日)19:38 ID:ZvPXoPz+0(11/11)調 AAS
>>900
サプーさんの2時間の動画見ても、結構「???」なとこ多くて、書籍はまだ理解できるレベルじゃないものだったので、Paizaってサイトに挑戦してみます

詳しくレスしてくれてありがとう
905: (ワッチョイ 4954-okkI) 2024/09/08(日)22:39 ID:zGDX69KT0(3/6)調 AAS
何か裏で処理させてて、完了したらポップアップで知らせたい
それだけなら方法はいくらでもあるけど、
よし判ったとEnter一発で閉じたい
でもポップアップにフォーカスが無いので、いろいろ面倒くさい
ポップアップの位置もど真ん中に出ると邪魔なので端に寄せたい
でも tkinter でどう頑張ってもそんなことできない
906: (ワッチョイ 8956-JApX) 2024/09/08(日)23:07 ID:FaHdpY160(3/3)調 AAS
ずっと画面見てる前提なら数秒したら消す処理すりゃいいんじゃない?
907: (ワッチョイ 4954-okkI) 2024/09/08(日)23:08 ID:zGDX69KT0(4/6)調 AAS
そんな前提は無い
908: (ワッチョイ 9601-+J7s) 2024/09/08(日)23:17 ID:zRsEDrHt0(1)調 AAS
toastとかOS標準のnotificationを使えばいい
キーボードショートカットも用意されてる
909: (ワッチョイ 4954-okkI) 2024/09/08(日)23:26 ID:zGDX69KT0(5/6)調 AAS
win11toastもinputがあってさえフォーカスは来てないな
910: (ワッチョイ 4954-okkI) 2024/09/08(日)23:46 ID:zGDX69KT0(6/6)調 AAS
結局、powershellのPopupをsubprocess.runで呼び出すのがベスト
それで可能なのは最初から判ってたけども

os寄りの処理って互換性とか無視してosべったりで作った方が幸せになれる
911: (ワッチョイ 2579-OVBJ) 2024/09/09(月)05:00 ID:i0341ZB+0(1/2)調 AAS
そこはWin32APIを呼び出したほうが親和性が高いだろう
windowsアプリと同じ見てくれ、ふるまいになるし、
デフォルトボタンやフォーカスは確実に有効にできる
912: (ワッチョイ 7152-76Bl) 2024/09/09(月)14:54 ID:iWr3h1fB0(1)調 AAS
中央だと邪魔だから端に表示するような種類のポップアップで強制的にフォーカス奪っだらダメだろ
個人専用なら好きにすればいいが他人に使わせるアプリでは絶対やってはいけないパターン
913: (ワッチョイ 4954-okkI) 2024/09/09(月)15:25 ID:M6TEicyP0(1/4)調 AAS
ポップアップの位置を変えるようなことは、Win32 API使っても無理な気がする
標準に似せたものを自前で作るしか
914
(1): (ワッチョイ 8aa5-f0zi) 2024/09/09(月)17:58 ID:XsanjNXu0(1)調 AAS
WindowsアプリをPythonで作るな!
915: 警備員[Lv.29] (ワッチョイ edfe-R7+n) [sage釣] 2024/09/09(月)19:59 ID:WqKgF9CS0(1)調 AAS
カラスの勝手でしょぉ♪
916: (アウアウエー Sa52-t/33) 2024/09/09(月)21:10 ID:6U3TxPzTa(1)調 AAS
ただでさえPOPUPはTOPMOSTにしない方が良いのに
TOPMOSTにした上でENTERで反応するPOPUPなんて百害あって一理無しよ
917
(1): (ワッチョイ 4954-okkI) 2024/09/09(月)21:29 ID:M6TEicyP0(2/4)調 AAS
謎にエスパーされてるけど、topmostが目下の課題
powershellからWScript.ShellのPopupを呼び出すと、
フォーカスは奪ってくれるけどtopmostではない
全画面で動画見てると音はするけど視覚的には気付かない
フォーカスがあってかつtopmostというのがやりたい処理なのに
918: (ワッチョイ 6a9f-mxTq) 2024/09/09(月)21:33 ID:+To1Amul0(1)調 AAS
表示はOSの通知にして
EnterはUIにフォーカスさせるのではなくキー入力をジャックする
919: (ワッチョイ f910-tR61) 2024/09/09(月)21:40 ID:wEgLJ8040(1)調 AAS
きっとそのうちEnterで消すのがうざくなる…
920: (ワッチョイ 2579-OVBJ) 2024/09/09(月)22:59 ID:i0341ZB+0(2/2)調 AAS
>>917
"ctypes.windll.user32.MessageBoxW"で
MB Typeに"0x40000"を与えれば"MB_TOPMOST"になる

>>914
普段はコンソールを立ち上げずにこっそり実行
エラーとか、対話が必要なときだけポップアップが出るようにするのには有用なんだよ
no_consoleモード+ポップアップはそんな目的にはぴったりだし
921: (ワッチョイ 4954-okkI) 2024/09/09(月)23:24 ID:M6TEicyP0(3/4)調 AAS
0x40000足せばいいだけだったのか
もう殆ど手が届いてたんだな
262144でかすぎひん
922: (ワッチョイ 4954-okkI) 2024/09/09(月)23:50 ID:M6TEicyP0(4/4)調 AAS
bit毎に意味があるんじゃなくて、nibble毎に割り振ってるんだな
不思議な設計
923: (ワッチョイ 7501-U5Lc) 2024/09/10(火)09:46 ID:V/5rRVOx0(1)調 AAS
bit毎に意味あるだろ
bit fieldでググってこい
924: (アウアウエー Sa52-t/33) 2024/09/10(火)13:11 ID:KGjTz1X0a(1)調 AAS
+で良いと思ってる人間と|だろうなと思ってる人間は雲泥の差がある
925: (ワッチョイ a60a-vlgT) 2024/09/10(火)21:10 ID:sQRxeMB30(1)調 AAS
>もう殆ど手が届いてたんだな
これジョークじゃなきゃキッツいな
926
(1): (ワッチョイ aaae-voeu) 2024/09/13(金)14:57 ID:HD5QYSk40(1)調 AAS
OpenAIが複雑な推論能力をもつAIモデル「OpenAI o1」と「OpenAI o1-mini」を発表、プログラミングや数学で高い能力を発揮
https://gigazine.net/news/20240913-openai-o1/
927: 713 (ワッチョイ ea02-QZ+t) 2024/09/13(金)15:23 ID:Ri3tNWi30(1)調 AAS
>>926

すごいな
天才プログラマーか
928: (ワッチョイ 4954-okkI) 2024/09/13(金)21:29 ID:jtrlU5c10(1/4)調 AAS
何かあった時に失われるのが嫌なので、
ログとか出力する時に1行毎にopenして書いて閉じてるけど、
flush=True を付けるのと違いあるんだろうか
929
(1): (ワッチョイ 4954-okkI) 2024/09/13(金)21:34 ID:jtrlU5c10(2/4)調 AAS
違いあるんだろうかシリーズ
リストをソートしたいと思った時、ふつーに
l = sorted(l)
と書いたけど、そういえば l.sort() という方法もあった
気持ち悪いので本能的に避けたいけど、わざわざ用意されてるメリットって何だろう
計算コストは同じな気がする
930: (ワッチョイ 916d-vlgT) 2024/09/13(金)22:31 ID:C+esSXth0(1)調 AAS
同じじゃない
くだすれ行け
931: (ワッチョイ f9bf-BHET) 2024/09/13(金)22:35 ID:3+j4DpP00(1/2)調 AAS
>>929
一般的には追加のメモリ確保をしない l.sort() の方が効率的
l を再代入してるから分かりにくいけど、ソート結果は元の l とは別の領域に作られてる
これは、k = sorted(l) と書いた時にソート前後の両方のリストがオブジェクトとして存在することからも分かると思う
(l = sorted(l) は、追加のリストを作ったあとに l の参照先を新しいものに置き換えてる)

l.sort() だと元々あった l の領域内でソートされるので、追加のメモリ確保がいらない

要素数が小さいと気になることは無いと思うけど、例えば要素が10万個とかある場合だとだいぶ差が出ると思う
932
(1): (ワッチョイ 4954-okkI) 2024/09/13(金)23:01 ID:jtrlU5c10(3/4)調 AAS
メモリ確保するのってそんなに重い処理なの?
933: (ワッチョイ f9bf-BHET) 2024/09/13(金)23:50 ID:3+j4DpP00(2/2)調 AAS
>>932
一般的には重い処理
とはいっても、小さな量だと問題にならない
例えば画像処理の分野で、HDや4Kサイズの画像を1000枚処理したいといった話だと、メモリを毎回確保するか一度だけ確保したものを使い回すかで処理時間はだいぶ変わる (体感できるくらいに)
934: (ワッチョイ 4954-okkI) 2024/09/13(金)23:57 ID:jtrlU5c10(4/4)調 AAS
なるほどー
Cの時点でmallocが具体的に何してるか知らんしな
既に連続した空き容量があって割り当てるだけなら一瞬だろうけど、
いろいろ地上げしたり大変なんだろう
935: 警備員[Lv.30] (ワッチョイ edfe-R7+n) [sage釣] 2024/09/14(土)00:15 ID:ed1VLorT0(1)調 AAS
まとまった容量ならsbrk()使えって言われなかった?
936
(1): (ワッチョイ 4954-okkI) 2024/09/14(土)00:43 ID:uwwiah/a0(1/5)調 AAS
メモリ確保はO(n)でソートは下手したらO(n^2)だから、
nが大きいほどトータル処理時間に占めるメモリ確保の割合はむしろ小さくなるのでは
937: (ワッチョイ 9afb-76Bl) 2024/09/14(土)02:05 ID:xMffrK+40(1)調 AAS
>>936
その2つのnは全く別のものだろ
アホか
938: (ワッチョイ 4954-okkI) 2024/09/14(土)06:27 ID:uwwiah/a0(2/5)調 AAS
nが小さい場合:
メモリ確保の比率は大きいけどどうせ一瞬だから気にしない
nが大きい場合:
メモリ確保にも時間かかるけど、ソート時間が圧倒的だから気にしない

結局、気分の問題だけど、
破壊的な操作が嫌とか言ったらappend()とかできないし、
ミュータブルはそういうものと思うしか
939: (ワッチョイ f99f-BHET) 2024/09/14(土)07:44 ID:c0KErmyP0(1)調 AAS
ソートのコストとメモリ確保のコストは別々にかかるものだし、減らせるなら減らした方が良いと思う
自分のプログラムが扱うデータが小さくてsortedでもほぼ変わらないなら、こちらでも良い
自分も書き方自体は sorted の方が好きだし小さいプログラムならこちらを使ってるけど、そこは好みの問題なのでお好みで
940
(1): (アウアウエー Sa52-t/33) 2024/09/14(土)13:33 ID:o3f0Ddoea(1)調 AAS
l.sort() はみみっちい領域でやりくりする分アルゴリズムは遅くなりそう
l = sorted(l) あるいは k = sorted(l) が富豪的で結果的に速い可能性はある
941: (ワッチョイ 6634-5gfH) 2024/09/14(土)14:16 ID:tQni2TQM0(1)調 AAS
メモリ使いまくりはキャッシュ効率下がるから
一律に富豪が強いとは限らない
使うしかない時は強いけど
942: (ワッチョイ 1101-KYWP) 2024/09/14(土)14:50 ID:aiF3uBwH0(1)調 AAS
>>940
可能性無いよ
sorted()は内部でlist.sort()の実装を呼び出してる

ざっくり言えば
new_list = list(original_list)
new_list.sort()
return new_list
943
(1): (ワッチョイ 4954-okkI) 2024/09/14(土)16:15 ID:uwwiah/a0(3/5)調 AAS
for item in sorted(l):
とやるよりも
l.sort()
for item in l:
の方が速い、みたいな話

明示的にしろ暗黙にしろ、オブジェクトのコピーにいちいち気を使いたくない
コピーするだけで時間がかかるようなオブジェクトになりそうなら、
最初からそうならない実装にする
944: (オッペケ Srbd-bQm6) 2024/09/14(土)19:29 ID:WN+ppFgMr(1)調 AAS
seleniumのxpathについて質問です
5chの書き込み欄のxpathを確認し、
driver.find_element(By.XPATH, '//*[@id="js-postform_message"]').click()
と書いたのですが、プログラムを実行するとxpathが存在しないパターンの動作をしてしまいます
ブラウザでF12キーを押し、書き込み欄をクリックしてxpathをコピーするというよくある方法を使っているのですが、これではダメなんですかね?
945: (ワッチョイ 4954-okkI) 2024/09/14(土)19:38 ID:uwwiah/a0(4/5)調 AAS
driver.page_source を保存しておいて解析する
946: (ワッチョイ 4954-okkI) 2024/09/14(土)19:50 ID:uwwiah/a0(5/5)調 AAS
書き込みボタンは
//*[@id="js-postform_submit"]
で、
//*[@id="js-postform_message"]
は書き込み欄なので、clickではなくsend_keys
947: (オッペケ Srbd-bQm6) 2024/09/14(土)20:01 ID:reS5hF+Mr(1/3)調 AAS
ありがとうございます
send_keysは別の行にあります
一応clickの部分は行ごと消しましたがやはりダメですね…
948: (オッペケ Srbd-bQm6) 2024/09/14(土)20:51 ID:reS5hF+Mr(2/3)調 AAS
エラーをちゃんと見られるようにしたら、
name 'By' is not defined
と出ました
また要素関係の書き方が変わったんですかね?
以前は上記の
driver.find_element(By.XPATH, '//*[@id="js-postform_message"]')
という書き方で動いていたのですが…
書き方変更などの情報はどこで入手するのか…
949
(1): (ワッチョイ ea61-IU9Y) 2024/09/14(土)20:56 ID:hpW9Sln40(1)調 AAS
from selenium.webdriver.common.by import By
950: (オッペケ Srbd-bQm6) 2024/09/14(土)20:58 ID:reS5hF+Mr(3/3)調 AAS
>>949
ありがとうございます!解決しました!
それをコメントアウトしてしまっていました…
1-
あと 52 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s