- 1 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 18:52:26.67 ID:VqLViKoX0.net]
- !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のソースコードを5ちゃんに直貼はインデントが崩壊するので、 ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止) ttps://techiedelight.com/compiler/ Run Code機能あり。 ttp://ideone.com/ デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。 ttp://pastebin.com/ まずまずシンプル。 ttp://dpaste.com/ とてもシンプル。消えるまでの日数は十分長ーく指定のこと。 ◇Pythonオフィシャルサイト www.python.org/ ◇Pythonドキュメント https://docs.python.org/ja/3/ ◇まとめwiki ttp://python.rdy.jp/ ●関連スレ● 自称初心者は↓へ 【まず1嫁】くだすれPython(超初心者用) その57 mevius.5ch.net/test/read.cgi/tech/1653225908/ 〇前スレ〇 Pythonのお勉強 Part67 https://mevius.5ch.net/test/read.cgi/tech/1653540315/ 次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった) ### END of TEMPLATE ### VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
- 530 名前:デフォルトの名無しさん [2022/10/30(日) 12:41:23.93 ID:ejVjSPjsH.net]
- 画像のサイズっていう文脈なら俺はim.sizeとかを想定するなー
request文脈なら容量のサイズだけどな!
- 531 名前:デフォルトの名無しさん [2022/10/30(日) 12:41:44.93 ID:0ss8sts10.net]
- すいません。
質問の仕方がまずかったです。 画像の横幅とか縦幅の方のサイズのことです。 横幅350px以下の画像をダウンロードする時に除外したいのです。
- 532 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 12:46:32.71 ID:o3zlfJHfa.net]
- まあフォーマットによっては頭だけ読めばわかるけど…
- 533 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 12:59:12.74 ID:WAC/PohS0.net]
- 元々はサイズなんか判らん、というプロトコルがあって、
それでは不便だからと建て増しで追加してるから、 判る場合も判らない場合も
- 534 名前:あるんだよな
判ったとしても嘘をついている場合もある [] - [ここ壊れてます]
- 535 名前:デフォルトの名無しさん [2022/10/30(日) 13:09:28.80 ID:0ss8sts10.net]
- >>527
なるほど そんな事情があるとは知りませんでした。 オンライン上でサイズを調べるのは無理そうなので、 一度ダウンロードしてから仕分けるようにします。 ご迷惑をおかけしてしまいすいません。 ありがとうございました。
- 536 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 13:18:51.61 ID:XddGgynb0.net]
- パッとヘッダ見た感じjpegなら0xA3にWORD値で高さ、0xA5に幅、どちらもリトルエンディアン
pngなら0x10にDWORD値で高さ、0x14に幅、リトルエンディアン って感じだね 上手くヘッダの一部だけダウンロードして画像サイズを得る関数を作ればトラフィック軽減になるかも?
- 537 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 14:39:50.92 ID:XddGgynb0.net]
- 暇だから作ってみたおじさん
https://ideone.com/2Bakfp
- 538 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 15:26:12.39 ID:VC4EQr6u.net]
- デザインパターンのSingletonパターンって必要ですかね・・
結局なんらかのカウンターで一元管理することになりませんか・・
- 539 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 15:49:28.81 ID:Hd1qfqu50.net]
- バイトコードってヒープ領域に格納されてvmに渡されるのですか?
- 540 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 16:53:19.41 ID:pkba5bNo0.net]
- >>529
ビッグエンディアンね jpegは画像サイズが含まれるセグメントの位置が固定ではないので決め打ちは危険
- 541 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 16:56:31.04 ID:40a1nlTva.net]
- >>531
使わないほうが良いものである
- 542 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 17:24:05.37 ID:yaCBWxQaa.net]
- >>532
そうです 内部的にはPyCodeObjectという形で実装されています
- 543 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 17:53:38.94 ID:Hd1qfqu50.net]
- >>535
ありがとうございます!
- 544 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 18:13:35.82 ID:CDidbViTM.net]
- >>504
他言語触ってて 先に型ヒントつけて宣言しとこで同じ間違いしたわ
- 545 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 19:10:27.11 ID:XddGgynb0.net]
- >>533
本当だ逆に覚えてた恥ずかしい JPEGはサイズ前の5byteが共通っぽかったから>>530ではFF C0 00 11 08を検索するようにしてみたけどFF C0後の3byteは可変っぽいね そもそも1KB以内にサイズ情報があるかも分からないのか
- 546 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 23:05:03.89 ID:q24pCrd50.net]
- ここは朝鮮人のスレ
チョッパリはくるな!
- 547 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 23:53:08.68 ID:vrlOFY0H0.net]
- 発作か
- 548 名前:デフォルトの名無しさん [2022/10/31(月) 14:05:35.97 ID:j6J+ogvNM.net]
- >>531
なんないよ
- 549 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 02:33:37.39 ID:mmiO/WJW0.net]
- 不特定の文字・数字・記号、またそれらの組み合わせを意味する表記で記入する方法を教えて下さい
[123456aaaあ井う~〜」 ↑みたいなのがあったとして、数字や文字は毎回変わる、場合によっては桁数が変わったりもする テキストファイル内で上記のパターンの文字列を見つけて、その前の位置で改行を入れるみたいなことをしたいです イメージですが下記みたいに表して a に代入しておいて [123456aaa文字] → [%%% ¥¥¥¥¥¥¥¥] or [%(桁数)¥(桁数)] replace(a,”/n”+a) でテキストファイルを書き換えるようなことって可能ですか?
- 550 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 02:42:25.93 ID:mmiO/WJW0.net]
- 誤字 /n → \n
- 551 名前:デフォルトの名無しさん [2022/11/01(火) 03:36:18.46 ID:I1aopbaSM.net]
- なるほどわからん
- 552 名前:デフォルトの名無しさん [2022/11/01(火) 08:16:26.34 ID:xJk+jZok0.net]
- これは煽りではなく真面目なアドバイスなんだが、プログラミングより国語を勉強した方がいい
その言語能力だと難しいと思う
- 553 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 08:30:28.54 ID:mmiO/WJW0.net]
- 222tq2tq2tq269ああ%64agaoiwahaio.59gagagahai3a.t69a 5>22gahaiiha
この文字列を 222tq2tq2tq269 ああ%64agaoiwaha io.59gagagahai3a.t69 a 5>22gahaiiha この出力結果にするにはどうすれば良いですか? なら大丈夫ですかね? この場合だと「文字列2つ + 記号1つ + 数字2つ」のパターンを見つけて改行したい
- 554 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 08:48:28.70 ID:p4TXbqbPa.net]
- じゃあそのパターンで改行すれば…
正規表現でいいんじゃないかな
- 555 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 08:51:40.09 ID:CMvcSOEo0.net]
- このスレよりも、正規表現のスレで聞けば?
- 556 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 09:10:51.89 ID:tDs0tp7pM.net]
- オホダナー
そうだよオホダヨ~
- 557 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 09:37:37.84 ID:mmiO/WJW0.net]
- >>547
その正規表現の表記の方法がよく分からないです 123abcdeあいう ↓ “\d{3}\w*.{3}” これじゃダメみたいで、どう表記するのが正解なのか分かる方いたら教えて欲しいです
- 558 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 09:48:17.04 ID:mmiO/WJW0.net]
- できました。ありがとうございました
- 559 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 10:42:07.10 ID:HBYRkZVUa.net]
- 正規表現の勉強がてらやってみた
https://ideone.com/vPYWtM 最後の1行はマッチしないね
- 560 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 11:08:19.56 ID:mmiO/WJW0.net]
- 表記自体は合っていたのですが、re.match()でやってたせいで出力されなかったみたいで、re.search()に変えるだけで解決しました
- 561 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 12:13:10.09 ID:vww+azZz0.net]
- matchは使わずに
search(r'^なにか') でいいよな fullmatchは^と$で ^や$を使うなというのであれば、$だけ使うパターンも整備されていないと不完全
- 562 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 16:21:24.69 ID:GYf/ELerM.net]
- 俺は君にマッチしたい※
- 563 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 16:40:02.94 ID:1fqXVNhi0.net]
- 正規表現に関してはrubyやperlみたいに演算子にしてしまうのがベストだと思う
searchだとかmatchだとかregexpだとかmatch_allだとか覚えられんて
- 564 名前:デフォルトの名無しさん [2022/11/01(火) 17:42:07.83 ID:59UjWoGEM.net]
- 命名とかAPI設計がイケてない
match、search、fullmatch・・・ たまにしか使わない人は諦めて毎回リファレンス参照するしかない
- 565 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 17:59:02.79 ID:vww+azZz0.net]
- list.append()が破壊的だったかすら忘れてぐぐる
- 566 名前:デフォルトの名無しさん (ワッチョイ 8b89-g96c) mailto:sage [2022/11/01(火) 22:54:57.42 ID:w1dGDiRI0.net]
- 覚えられないのではない
覚えないという選択をしているのだ 覚えるために何か工夫したのか?
- 567 名前:デフォルトの名無しさん (ワッチョイ 9109-iO6U) [2022/11/01(火) 22:55:36.13 ID:EqpfaKBX0.net]
- イテレータ判定されるのにfor できないんですが
イテレータとはforができるものではないんですか X = type("") if hasattr(X, '__iter__') : for x in X : pass
- 568 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 23:34:09.39 ID:yhai460Y0.net]
- X(= str)じゃなくXのインスタンスならそう
- 569 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 23:43:36.24 ID:vww+azZz0.net]
- 覚えないといけない時点でおかしい
理解すれば覚えなくていいのが正解 list.append()は破壊的で、str.replace()は非破壊であることに、 合理的な説明は無い その方が便利なことが多そうだからとか、メモリの都合とか、 一旦そう決めちゃったからとか、そんな理由に過ぎない
- 570 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 00:26:44.23 ID:WNjxQYpUM.net]
- list.appendは配列の終わりにつけるだけ
str.replaceは配列の途中に差し込む可能性があるからでは? メモリ操作のコストが違うじゃん
- 571 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 00:47:23.04 ID:ul/vZuFO0.net]
- 配列が格納してある後ろに空きスペースがたくさん確保してあるならそうだろうけど
で、コストが実際に違ったとしてもそんなことは知らんがなでしかない
- 572 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 00:58:46.26 ID:I1Z+o8fX0.net]
- みんな知ってることだけど、listはmutableでstrはimmutableだからだよ。
これでもう各関数が破壊的かどうかいちいち覚える必要はなくなったね!
- 573 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 01:00:03.55 ID:WNjxQYpUM.net]
- listはある程度後ろに確保してるしコストが実際に違ったらそれは明確に合理的な理由でしょ
- 574 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 01:17:00.86 ID:jyU6y3CY0.net]
- >>565
これ まあそういうものとして覚えるしかないわけだけど
- 575 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 07:59:09.20 ID:cbFKoHcVM.net]
- べつに目的の物が作れればどうでもいいんじゃないの?
ミッションクリティカルなモノをコレで作ったりするのかな?
- 576 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 11:06:12.06 ID:FQ1wBQnh0.net]
- listに後ろとか関係なくない?
- 577 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 11:21:15.39 ID:1xZXeW2Ya.net]
- linkedなリストは関係ないよな
連続したメモリに入ってる配列的なやつはアレだけど
- 578 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 11:39:42.36 ID:FQ1wBQnh0.net]
- >>570
str との違いも結局これだし
- 579 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 14:55:39.24 ID:VFt43YlcM.net]
- pythonのリストはポインタの配列でしょ?
- 580 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:15:12.19 ID:1xZXeW2Ya.net]
- 違います
- 581 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:27:31.11 ID:jyU6y3CY0.net]
- PyObject*の配列です
PyObject **ob_item; // PyObject*の配列 Py_ssize_t allocated; // アロケートされてる個数
- 582 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:28:55.28 ID:jyU6y3CY0.net]
- cpythonなソースは読みやすい
- 583 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:42:15.13 ID:ul/vZuFO0.net]
- 0から255までの数字が入った要素数1000の配列があって、
Cだとunsigned char list[1000]; みたいに宣言してlist[i]で参照するとアドレス計算で値を取ってくるけど、 pythonはどうやってるの?
- 584 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:43:56.47 ID:4MCwg8YuM.net]
- ちょっと調べた限りやっぱりPythonのリストはポインタの配列だと思うんだが違うっていうなら何か教えて
insertの遅さとかで連結リストではないとは思うけど
- 585 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:51:59.96 ID:wyluLqIy0.net]
- >>574が正しい
https://github.com/python/cpython/blob/main/Include/cpython/listobject.h
- 586 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:55:42.08 ID:jyU6y3CY0.net]
- cpythonのソースはマジで読みやすい
Rubyとかもうぐちゃぐちゃしてて読めねえもん
- 587 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:05:34.74 ID:jyU6y3CY0.net]
- 実際の配列のサイズはPyObject_VAR_HEADマクロのob_sizeに入ってる
- 588 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:12:23.01 ID:1xZXeW2Ya.net]
- >>577
別になんでもいいんです
- 589 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:14:41.69 ID:5K2+hbiBa.net]
- 答え書かれてるのに全く分かってなくて草
- 590 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:30:34.65 ID:1xZXeW2Ya.net]
- 大学行くと実装と仕様の区別がつくようになるかも?
- 591 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:31:01.29 ID:l50Y39h10.net]
- >>574
つまりポインタの配列
- 592 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:31:44.66 ID:ul/vZuFO0.net]
- listにappendすると、ポインタの配列の末尾にポインタが追加される
配列のサイズが変わるので、サイズを増やした配列を作ってコピーしないとできない 筈なのに、idを調べると変わらない **ob_itemに入ってる値は変わるけど、**ob_item自体のアドレスは変わらない ということ?
- 593 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:33:58.87 ID:l50Y39h10.net]
- 組み込みだから作り直した配列にidがコピーされてたり
- 594 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:36:39.11 ID:oCOyjRuB0.net]
- VM上は指すオブジェクト変わってないのにid変わったらあかんでしょ
- 595 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:40:00.28 ID:rAnbDRgM0.net]
- 適当にリンクリストあたりかと思ってた
- 596 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:40:29.11 ID:ul/vZuFO0.net]
- appendしても同じオブジェクトという時点で違和感があるんだよな
明らかに別物やん 仮にappendが非破壊で list = list.append() とした時にidが変わる方が納得できる
- 597 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:40:29.75 ID:5K2+hbiBa.net]
- >>585
逆だよ ob_item自体は大きさが変わる時にreallocでアドレスが変わるけど 中身の方はポインタをコピーするだけだから変わらない
- 598 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:42:07.37 ID:1xZXeW2Ya.net]
- >>577
違うって理解できた?
- 599 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:51:27.03 ID:5K2+hbiBa.net]
- >>589
そもそもが全部Cで実装されてるんだからそういうメモリモデルなんだ、という理解で良いと思うよ
- 600 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:53:06.08 ID:4MCwg8YuM.net]
- >>591
あなたは何もわかってないのは理解できました
- 601 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:57:27.92 ID:1xZXeW2Ya.net]
- >>593
わかんない? 違うよ どんどん主張が後退するんじゃねえかなという期待の下、繰り返すけど
- 602 名前:デフォルトの名無しさん [2022/11/02(水) 21:11:39.58 ID:CsBXjP5R0.net]
- リンクリストはリスト的なものを作るときに第一の選択肢としてはこないと思うよ。
任意の要素へのアクセスがO(n)かかるから。 必ず頭から順番に読んで、途中に挿入したいことが多いとかいう状況だったら使うけど、こういう特性を、癖があると思う人の方が多いんじゃないかな。 そういうコンピュータサイエンスの初歩みたいなところの実装が気になるなら、Javaを勉強してみるといいかもね。 リストも辞書もセットも、複数の実装方法が標準で用意されてて明示的にどれを使うか決めなくちゃいけないから。 そう考えると初心者にJava教えてた頃ってコレクションで付いていけなくなり勉強を諦めた人多いんだろうか。
- 603 名前:デフォルトの名無しさん [2022/11/02(水) 21:16:31.46 ID:CsBXjP5R0.net]
- >>589
夕飯を食べる前の自分と食べた後の自分は別のインスタンスか?って問いにyesと答えられるならばイミュータブルなものにしかidを付けてはいけないと考えているのだろう(そういう言語もある、Haskellとか) そうでなければ、ミュータブルなインスタンスはミュータブルなんだからidが同じでも中身は変化すると考えるべきだろう
- 604 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 21:22:30.41 ID:jJasVlr90.net]
- idってCでのアドレスそのものなんでしょ
実装の都合でアドレスが変わったらidも変わるというだけの話で、 何らかのポリシーみたいなものは背景に無いような
- 605 名前:デフォルトの名無しさん [2022/11/02(水) 21:30:55.81 ID:CsBXjP5R0.net]
- >>597
CPythonではな。(すみません知りませんでした) しかしGCがかかりまくるVM上で動くPythonの実装もあるから、CPythonではそうっていう認識に留めておいたほうがいいんじゃないかなあ。
- 606 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 21:42:19.23 ID:2orW5ow60.net]
- idが変わる/変わらないとミュータブル/イミュータブルは一対一対応?
- 607 名前:デフォルトの名無しさん [2022/11/02(水) 22:06:28.39 ID:CsBXjP5R0.net]
- >>599
まず、イミュータブルというのをどう定義するかによると思うけど (タプルはイミュータブルだが、タプルの中にリストを入れた場合、リストほミュータブルで、リストに変更を加えてもタプルのインスタンスが新しくできるわけではない) そういうややこしい例を除いても、 イミュータブルならば、値を変えたらidが変わる 値を変えてもidが変わらないならミュータブル しか言えないんじゃない?
- 608 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 22:13:30.31 ID:F9kh54e50.net]
- 定義や実装で何がミュータブルかがころころ変わってはいけなくて、
pythonではどんな環境でも同じものがミュータブルであるべき で、idが変わる/変わらないが環境依存ならば、idとミュータブルは関係ないことになる
- 609 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 22:18:06.81 ID:jyU6y3CY0.net]
- わけわからん
- 610 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 22:20:05.72 ID:yCeW62XuM.net]
- pythonの辞書ってc++のmapと違って内部でソートされてないからアクセス遅いっぽいんだよね
keysで取り出しても登録した順だし 文字列でも数値でもキーにできるからそういうものなのか
- 611 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 22:50:50.14 ID:rAnbDRgM0.net]
- >>595
最後尾への追加削除がO(1)だったからリンクリストだと思ったけど リアロケートの実装でどうにかそれっぽくなるんだねぇ 全く気にしてなかったけど、勉強になったわ
- 612 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 22:58:46.37 ID:P6hHm0TD0.net]
- ループで一つずつappendしていくようなコードは、
溜めておいて一気にどーんで高速化できそう
- 613 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 23:13:03.99 ID:Vdzb0Lkj0.net]
- Elixir なんて片方向リストだから、先頭の要素の追加・削除のみ速い。
末尾では全要素をたどる Ruby は両方向リストだったかな?
- 614 名前:デフォルトの名無しさん [2022/11/02(水) 23:41:13.42 ID:d827SSNz0.net]
- >>603
pythonの辞書は順番を保持することが仕様で規定されてる
- 615 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 00:20:58.38 ID:gcHdWorI0.net]
- 3年くらい前からだっけ?
キーバリューやから順番気にしたことなかったわ
- 616 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 00:37:59.14 ID:vWeFXHff0.net]
- 順番が同じだとセキュリティの問題があるから意図的にランダムにしてなかったっけ
- 617 名前:デフォルトの名無しさん [2022/11/03(木) 00:45:24.21 ID:9oLRzF140.net]
- >>604
C++のvectorとか、JavaのArrayListの典型的な実装だと、リアロケートが発生するときに倍ぐらいの領域を予め確保しておく、ってのが普通って読んだな コードレベルで読んだ訳じゃないから確たるエビデンスがあるわけじゃないけど。
- 618 名前:デフォルトの名無しさん [2022/11/03(木) 00:49:20.51 ID:9oLRzF140.net]
- 辞書は3.5だかそのぐらいで入れた順になるように仕様が決まったよね
それまではバラバラだったはず あとソート済みが欲しいならsortedcollectionsがあるんじゃないの Pythonでパフォーマンス気にするようなコード書いたことないから速くなるかは知らないが パフォーマンス気になるならもう普通にpybind11よ
- 619 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 01:13:09.17 ID:t2qUW0n10.net]
- 動的配列は償却計算量の典型例だぞ
- 620 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 09:06:43.51 ID:b87ZSO0X0.net]
- 半島人w
- 621 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 13:19:41.92 ID:M31+WIXk0.net]
- ネトウヨはコードすら書けない
- 622 名前:デフォルトの名無しさん [2022/11/03(木) 17:39:13.22 ID:JzcJhjtx0.net]
- isPrime(n: int):
__for i in range(2, n//2 + 1): ____if (not n%i): ______return 0 __return 1 numPrimes = 0 for i in range(2, 250001): __numPrimes += isPrime(i) print(numPrimes) cとかだと5秒以下で終わると思うんですが pythonではどうやって高速化できますか?
- 623 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 17:50:53.27 ID:6cc1wOit0.net]
- 全角スペースでインデントするといい
- 624 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 17:57:37.28 ID:t2qUW0n10.net]
- エラトステネスの篩みたいなまともなアルゴリズムを使え
- 625 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 18:05:57.27 ID:pngFKRCN0.net]
- >>615
range(2, n//2 + 1) を range(2, int(n**0.5)+1) にするだけで速くなると言うのは違うか。 n**0.5 は math を import するのが面倒だっただけ。。。
- 626 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 18:12:13.51 ID:Tny9BBIXa.net]
- しょーもないネタ振り
- 627 名前:デフォルトの名無しさん [2022/11/03(木) 18:58:51.96 ID:Ppt07bQPH.net]
- >>617
言語間の速度差を埋めたいという文脈で 片方により効率的なアルゴリズム使えというのは筋が違うと思う それやったら相手のCも早くなるやん
- 628 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 19:15:26.76 ID:t2qUW0n10.net]
- それはそうだけどPythonをできるだけ速くしようというのは徒労に終わるんだよな
- 629 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 19:17:29.83 ID:5fumPTTR6.net]
- >>615
allかanyか使う
- 630 名前:デフォルトの名無しさん mailto:sage [2022/11/03(木) 19:45:13.49 ID:NbsIPyEs0.net]
- >>620
> 言語間の速度差を埋めたいという文脈で そうか、単にPythonで高速化したいだけに見えるけど? > pythonではどうやって高速化できますか?
|

|