[過去ログ]
Pythonのお勉強 Part68 (1002レス)
Pythonのお勉強 Part68 http://mevius.5ch.net/test/read.cgi/tech/1663235546/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
550: デフォルトの名無しさん (ワッチョイ f102-+Dbv) [sage] 2022/10/30(日) 14:39:50.92 ID:XddGgynb0 暇だから作ってみたおじさん https://ideone.com/2Bakfp http://mevius.5ch.net/test/read.cgi/tech/1663235546/550
551: デフォルトの名無しさん [sage] 2022/10/30(日) 15:26:12.39 ID:VC4EQr6u デザインパターンのSingletonパターンって必要ですかね・・ 結局なんらかのカウンターで一元管理することになりませんか・・ http://mevius.5ch.net/test/read.cgi/tech/1663235546/551
552: デフォルトの名無しさん (ワッチョイ 3909-DL5s) [sage] 2022/10/30(日) 15:49:28.81 ID:Hd1qfqu50 バイトコードってヒープ領域に格納されてvmに渡されるのですか? http://mevius.5ch.net/test/read.cgi/tech/1663235546/552
553: デフォルトの名無しさん (ワッチョイ 1361-4kdC) [sage] 2022/10/30(日) 16:53:19.41 ID:pkba5bNo0 >>549 ビッグエンディアンね jpegは画像サイズが含まれるセグメントの位置が固定ではないので決め打ちは危険 http://mevius.5ch.net/test/read.cgi/tech/1663235546/553
554: デフォルトの名無しさん (アウアウウー Sa9d-mHKc) [sage] 2022/10/30(日) 16:56:31.04 ID:40a1nlTva >>551 使わないほうが良いものである http://mevius.5ch.net/test/read.cgi/tech/1663235546/554
555: デフォルトの名無しさん (アウアウウー Sa9d-5cND) [sage] 2022/10/30(日) 17:24:05.37 ID:yaCBWxQaa >>552 そうです 内部的にはPyCodeObjectという形で実装されています http://mevius.5ch.net/test/read.cgi/tech/1663235546/555
556: デフォルトの名無しさん (ワッチョイ 3909-DL5s) [sage] 2022/10/30(日) 17:53:38.94 ID:Hd1qfqu50 >>555 ありがとうございます! http://mevius.5ch.net/test/read.cgi/tech/1663235546/556
557: デフォルトの名無しさん (ワントンキン MMd3-1hc3) [sage] 2022/10/30(日) 18:13:35.82 ID:CDidbViTM >>524 他言語触ってて 先に型ヒントつけて宣言しとこで同じ間違いしたわ http://mevius.5ch.net/test/read.cgi/tech/1663235546/557
558: デフォルトの名無しさん (ワッチョイ f102-+Dbv) [sage] 2022/10/30(日) 19:10:27.11 ID:XddGgynb0 >>553 本当だ逆に覚えてた恥ずかしい JPEGはサイズ前の5byteが共通っぽかったから>>550ではFF C0 00 11 08を検索するようにしてみたけどFF C0後の3byteは可変っぽいね そもそも1KB以内にサイズ情報があるかも分からないのか http://mevius.5ch.net/test/read.cgi/tech/1663235546/558
559: デフォルトの名無しさん (ワッチョイ 13ad-ww+g) [sage] 2022/10/30(日) 23:05:03.89 ID:q24pCrd50 ここは朝鮮人のスレ チョッパリはくるな! http://mevius.5ch.net/test/read.cgi/tech/1663235546/559
560: デフォルトの名無しさん (ワッチョイ 1363-HLP5) [sage] 2022/10/30(日) 23:53:08.68 ID:vrlOFY0H0 発作か http://mevius.5ch.net/test/read.cgi/tech/1663235546/560
561: デフォルトの名無しさん (ブーイモ MM33-cv0M) [] 2022/10/31(月) 14:05:35.97 ID:j6J+ogvNM >>551 なんないよ http://mevius.5ch.net/test/read.cgi/tech/1663235546/561
562: デフォルトの名無しさん (ワッチョイ 1314-bpsI) [sage] 2022/11/01(火) 02:33:37.39 ID:mmiO/WJW0 不特定の文字・数字・記号、またそれらの組み合わせを意味する表記で記入する方法を教えて下さい [123456aaaあ井う~〜」 ↑みたいなのがあったとして、数字や文字は毎回変わる、場合によっては桁数が変わったりもする テキストファイル内で上記のパターンの文字列を見つけて、その前の位置で改行を入れるみたいなことをしたいです イメージですが下記みたいに表して a に代入しておいて [123456aaa文字] → [%%% ¥¥¥¥¥¥¥¥] or [%(桁数)¥(桁数)] replace(a,”/n”+a) でテキストファイルを書き換えるようなことって可能ですか? http://mevius.5ch.net/test/read.cgi/tech/1663235546/562
563: デフォルトの名無しさん (ワッチョイ 1314-bpsI) [sage] 2022/11/01(火) 02:42:25.93 ID:mmiO/WJW0 誤字 /n → \n http://mevius.5ch.net/test/read.cgi/tech/1663235546/563
564: デフォルトの名無しさん (ブーイモ MMeb-cv0M) [] 2022/11/01(火) 03:36:18.46 ID:I1aopbaSM なるほどわからん http://mevius.5ch.net/test/read.cgi/tech/1663235546/564
565: デフォルトの名無しさん (ワッチョイ 8b10-WE8j) [] 2022/11/01(火) 08:16:26.34 ID:xJk+jZok0 これは煽りではなく真面目なアドバイスなんだが、プログラミングより国語を勉強した方がいい その言語能力だと難しいと思う http://mevius.5ch.net/test/read.cgi/tech/1663235546/565
566: デフォルトの名無しさん (ワッチョイ 1314-bpsI) [sage] 2022/11/01(火) 08:30:28.54 ID:mmiO/WJW0 222tq2tq2tq269ああ%64agaoiwahaio.59gagagahai3a.t69a 5>22gahaiiha この文字列を 222tq2tq2tq269 ああ%64agaoiwaha io.59gagagahai3a.t69 a 5>22gahaiiha この出力結果にするにはどうすれば良いですか? なら大丈夫ですかね? この場合だと「文字列2つ + 記号1つ + 数字2つ」のパターンを見つけて改行したい http://mevius.5ch.net/test/read.cgi/tech/1663235546/566
567: デフォルトの名無しさん (アウアウウー Sa9d-mHKc) [sage] 2022/11/01(火) 08:48:28.70 ID:p4TXbqbPa じゃあそのパターンで改行すれば… 正規表現でいいんじゃないかな http://mevius.5ch.net/test/read.cgi/tech/1663235546/567
568: デフォルトの名無しさん (ワッチョイ 694f-K3KU) [sage] 2022/11/01(火) 08:51:40.09 ID:CMvcSOEo0 このスレよりも、正規表現のスレで聞けば? http://mevius.5ch.net/test/read.cgi/tech/1663235546/568
569: デフォルトの名無しさん (テテンテンテン MMeb-kKgp) [sage] 2022/11/01(火) 09:10:51.89 ID:tDs0tp7pM オホダナー そうだよオホダヨ~ http://mevius.5ch.net/test/read.cgi/tech/1663235546/569
570: デフォルトの名無しさん (ワッチョイ 1314-bpsI) [sage] 2022/11/01(火) 09:37:37.84 ID:mmiO/WJW0 >>567 その正規表現の表記の方法がよく分からないです 123abcdeあいう ↓ “\d{3}\w*.{3}” これじゃダメみたいで、どう表記するのが正解なのか分かる方いたら教えて欲しいです http://mevius.5ch.net/test/read.cgi/tech/1663235546/570
571: デフォルトの名無しさん (ワッチョイ 1314-bpsI) [sage] 2022/11/01(火) 09:48:17.04 ID:mmiO/WJW0 できました。ありがとうございました http://mevius.5ch.net/test/read.cgi/tech/1663235546/571
572: デフォルトの名無しさん (アウアウウー Sa9d-+Dbv) [sage] 2022/11/01(火) 10:42:07.10 ID:HBYRkZVUa 正規表現の勉強がてらやってみた https://ideone.com/vPYWtM 最後の1行はマッチしないね http://mevius.5ch.net/test/read.cgi/tech/1663235546/572
573: デフォルトの名無しさん (ワッチョイ 1314-bpsI) [sage] 2022/11/01(火) 11:08:19.56 ID:mmiO/WJW0 表記自体は合っていたのですが、re.match()でやってたせいで出力されなかったみたいで、re.search()に変えるだけで解決しました http://mevius.5ch.net/test/read.cgi/tech/1663235546/573
574: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/01(火) 12:13:10.09 ID:vww+azZz0 matchは使わずに search(r'^なにか') でいいよな fullmatchは^と$で ^や$を使うなというのであれば、$だけ使うパターンも整備されていないと不完全 http://mevius.5ch.net/test/read.cgi/tech/1663235546/574
575: デフォルトの名無しさん (ワンミングク MMd3-g96c) [sage] 2022/11/01(火) 16:21:24.69 ID:GYf/ELerM 俺は君にマッチしたい※ http://mevius.5ch.net/test/read.cgi/tech/1663235546/575
576: デフォルトの名無しさん (ワッチョイ d9f0-5cND) [sage] 2022/11/01(火) 16:40:02.94 ID:1fqXVNhi0 正規表現に関してはrubyやperlみたいに演算子にしてしまうのがベストだと思う searchだとかmatchだとかregexpだとかmatch_allだとか覚えられんて http://mevius.5ch.net/test/read.cgi/tech/1663235546/576
577: デフォルトの名無しさん (ブーイモ MM33-cv0M) [] 2022/11/01(火) 17:42:07.83 ID:59UjWoGEM 命名とかAPI設計がイケてない match、search、fullmatch・・・ たまにしか使わない人は諦めて毎回リファレンス参照するしかない http://mevius.5ch.net/test/read.cgi/tech/1663235546/577
578: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/01(火) 17:59:02.79 ID:vww+azZz0 list.append()が破壊的だったかすら忘れてぐぐる http://mevius.5ch.net/test/read.cgi/tech/1663235546/578
579: デフォルトの名無しさん (ワッチョイ 8b89-g96c) [sage] 2022/11/01(火) 22:54:57.42 ID:w1dGDiRI0 覚えられないのではない 覚えないという選択をしているのだ 覚えるために何か工夫したのか? http://mevius.5ch.net/test/read.cgi/tech/1663235546/579
580: デフォルトの名無しさん (ワッチョイ 9109-iO6U) [] 2022/11/01(火) 22:55:36.13 ID:EqpfaKBX0 イテレータ判定されるのにfor できないんですが イテレータとはforができるものではないんですか X = type("") if hasattr(X, '__iter__') : for x in X : pass http://mevius.5ch.net/test/read.cgi/tech/1663235546/580
581: デフォルトの名無しさん (ワッチョイ fbe8-Sd0E) [sage] 2022/11/01(火) 23:34:09.39 ID:yhai460Y0 X(= str)じゃなくXのインスタンスならそう http://mevius.5ch.net/test/read.cgi/tech/1663235546/581
582: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/01(火) 23:43:36.24 ID:vww+azZz0 覚えないといけない時点でおかしい 理解すれば覚えなくていいのが正解 list.append()は破壊的で、str.replace()は非破壊であることに、 合理的な説明は無い その方が便利なことが多そうだからとか、メモリの都合とか、 一旦そう決めちゃったからとか、そんな理由に過ぎない http://mevius.5ch.net/test/read.cgi/tech/1663235546/582
583: デフォルトの名無しさん (ブーイモ MMdd-YnjT) [sage] 2022/11/02(水) 00:26:44.23 ID:WNjxQYpUM list.appendは配列の終わりにつけるだけ str.replaceは配列の途中に差し込む可能性があるからでは? メモリ操作のコストが違うじゃん http://mevius.5ch.net/test/read.cgi/tech/1663235546/583
584: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/02(水) 00:47:23.04 ID:ul/vZuFO0 配列が格納してある後ろに空きスペースがたくさん確保してあるならそうだろうけど で、コストが実際に違ったとしてもそんなことは知らんがなでしかない http://mevius.5ch.net/test/read.cgi/tech/1663235546/584
585: デフォルトの名無しさん (ワッチョイ 8bbb-T9F3) [sage] 2022/11/02(水) 00:58:46.26 ID:I1Z+o8fX0 みんな知ってることだけど、listはmutableでstrはimmutableだからだよ。 これでもう各関数が破壊的かどうかいちいち覚える必要はなくなったね! http://mevius.5ch.net/test/read.cgi/tech/1663235546/585
586: デフォルトの名無しさん (ブーイモ MMdd-YnjT) [sage] 2022/11/02(水) 01:00:03.55 ID:WNjxQYpUM listはある程度後ろに確保してるしコストが実際に違ったらそれは明確に合理的な理由でしょ http://mevius.5ch.net/test/read.cgi/tech/1663235546/586
587: デフォルトの名無しさん (ワッチョイ d9f0-5cND) [sage] 2022/11/02(水) 01:17:00.86 ID:jyU6y3CY0 >>585 これ まあそういうものとして覚えるしかないわけだけど http://mevius.5ch.net/test/read.cgi/tech/1663235546/587
588: デフォルトの名無しさん (テテンテンテン MMeb-kKgp) [sage] 2022/11/02(水) 07:59:09.20 ID:cbFKoHcVM べつに目的の物が作れればどうでもいいんじゃないの? ミッションクリティカルなモノをコレで作ったりするのかな? http://mevius.5ch.net/test/read.cgi/tech/1663235546/588
589: デフォルトの名無しさん (ワッチョイ 9914-lAaw) [sage] 2022/11/02(水) 11:06:12.06 ID:FQ1wBQnh0 listに後ろとか関係なくない? http://mevius.5ch.net/test/read.cgi/tech/1663235546/589
590: デフォルトの名無しさん (アウアウウー Sa9d-mHKc) [sage] 2022/11/02(水) 11:21:15.39 ID:1xZXeW2Ya linkedなリストは関係ないよな 連続したメモリに入ってる配列的なやつはアレだけど http://mevius.5ch.net/test/read.cgi/tech/1663235546/590
591: デフォルトの名無しさん (ワッチョイ 9914-lAaw) [sage] 2022/11/02(水) 11:39:42.36 ID:FQ1wBQnh0 >>590 str との違いも結局これだし http://mevius.5ch.net/test/read.cgi/tech/1663235546/591
592: デフォルトの名無しさん (ブーイモ MM8d-YnjT) [sage] 2022/11/02(水) 14:55:39.24 ID:VFt43YlcM pythonのリストはポインタの配列でしょ? http://mevius.5ch.net/test/read.cgi/tech/1663235546/592
593: デフォルトの名無しさん (アウアウウー Sa9d-mHKc) [sage] 2022/11/02(水) 18:15:12.19 ID:1xZXeW2Ya 違います http://mevius.5ch.net/test/read.cgi/tech/1663235546/593
594: デフォルトの名無しさん (ワッチョイ d9f0-5cND) [sage] 2022/11/02(水) 18:27:31.11 ID:jyU6y3CY0 PyObject*の配列です PyObject **ob_item; // PyObject*の配列 Py_ssize_t allocated; // アロケートされてる個数 http://mevius.5ch.net/test/read.cgi/tech/1663235546/594
595: デフォルトの名無しさん (ワッチョイ d9f0-5cND) [sage] 2022/11/02(水) 18:28:55.28 ID:jyU6y3CY0 cpythonなソースは読みやすい http://mevius.5ch.net/test/read.cgi/tech/1663235546/595
596: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/02(水) 18:42:15.13 ID:ul/vZuFO0 0から255までの数字が入った要素数1000の配列があって、 Cだとunsigned char list[1000]; みたいに宣言してlist[i]で参照するとアドレス計算で値を取ってくるけど、 pythonはどうやってるの? http://mevius.5ch.net/test/read.cgi/tech/1663235546/596
597: デフォルトの名無しさん (ブーイモ MM8d-YnjT) [sage] 2022/11/02(水) 18:43:56.47 ID:4MCwg8YuM ちょっと調べた限りやっぱりPythonのリストはポインタの配列だと思うんだが違うっていうなら何か教えて insertの遅さとかで連結リストではないとは思うけど http://mevius.5ch.net/test/read.cgi/tech/1663235546/597
598: デフォルトの名無しさん (ワッチョイ 8b46-g96c) [sage] 2022/11/02(水) 18:51:59.96 ID:wyluLqIy0 >>594が正しい https://github.com/python/cpython/blob/main/Include/cpython/listobject.h http://mevius.5ch.net/test/read.cgi/tech/1663235546/598
599: デフォルトの名無しさん (ワッチョイ d9f0-5cND) [sage] 2022/11/02(水) 18:55:42.08 ID:jyU6y3CY0 cpythonのソースはマジで読みやすい Rubyとかもうぐちゃぐちゃしてて読めねえもん http://mevius.5ch.net/test/read.cgi/tech/1663235546/599
600: デフォルトの名無しさん (ワッチョイ d9f0-5cND) [sage] 2022/11/02(水) 19:05:34.74 ID:jyU6y3CY0 実際の配列のサイズはPyObject_VAR_HEADマクロのob_sizeに入ってる http://mevius.5ch.net/test/read.cgi/tech/1663235546/600
601: デフォルトの名無しさん (アウアウウー Sa9d-mHKc) [sage] 2022/11/02(水) 19:12:23.01 ID:1xZXeW2Ya >>597 別になんでもいいんです http://mevius.5ch.net/test/read.cgi/tech/1663235546/601
602: デフォルトの名無しさん (アウアウウー Sa9d-5cND) [sage] 2022/11/02(水) 19:14:41.69 ID:5K2+hbiBa 答え書かれてるのに全く分かってなくて草 http://mevius.5ch.net/test/read.cgi/tech/1663235546/602
603: デフォルトの名無しさん (アウアウウー Sa9d-mHKc) [sage] 2022/11/02(水) 19:30:34.65 ID:1xZXeW2Ya 大学行くと実装と仕様の区別がつくようになるかも? http://mevius.5ch.net/test/read.cgi/tech/1663235546/603
604: デフォルトの名無しさん (ワッチョイ f102-+Dbv) [sage] 2022/11/02(水) 19:31:01.29 ID:l50Y39h10 >>594 つまりポインタの配列 http://mevius.5ch.net/test/read.cgi/tech/1663235546/604
605: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/02(水) 19:31:44.66 ID:ul/vZuFO0 listにappendすると、ポインタの配列の末尾にポインタが追加される 配列のサイズが変わるので、サイズを増やした配列を作ってコピーしないとできない 筈なのに、idを調べると変わらない **ob_itemに入ってる値は変わるけど、**ob_item自体のアドレスは変わらない ということ? http://mevius.5ch.net/test/read.cgi/tech/1663235546/605
606: デフォルトの名無しさん (ワッチョイ f102-+Dbv) [sage] 2022/11/02(水) 19:33:58.87 ID:l50Y39h10 組み込みだから作り直した配列にidがコピーされてたり http://mevius.5ch.net/test/read.cgi/tech/1663235546/606
607: デフォルトの名無しさん (ワッチョイ fbe6-Sd0E) [sage] 2022/11/02(水) 19:36:39.11 ID:oCOyjRuB0 VM上は指すオブジェクト変わってないのにid変わったらあかんでしょ http://mevius.5ch.net/test/read.cgi/tech/1663235546/607
608: デフォルトの名無しさん (ワッチョイ 1379-87TA) [sage] 2022/11/02(水) 19:40:00.28 ID:rAnbDRgM0 適当にリンクリストあたりかと思ってた http://mevius.5ch.net/test/read.cgi/tech/1663235546/608
609: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/02(水) 19:40:29.11 ID:ul/vZuFO0 appendしても同じオブジェクトという時点で違和感があるんだよな 明らかに別物やん 仮にappendが非破壊で list = list.append() とした時にidが変わる方が納得できる http://mevius.5ch.net/test/read.cgi/tech/1663235546/609
610: デフォルトの名無しさん (アウアウウー Sa9d-5cND) [sage] 2022/11/02(水) 19:40:29.75 ID:5K2+hbiBa >>605 逆だよ ob_item自体は大きさが変わる時にreallocでアドレスが変わるけど 中身の方はポインタをコピーするだけだから変わらない http://mevius.5ch.net/test/read.cgi/tech/1663235546/610
611: デフォルトの名無しさん (アウアウウー Sa9d-mHKc) [sage] 2022/11/02(水) 19:42:07.37 ID:1xZXeW2Ya >>597 違うって理解できた? http://mevius.5ch.net/test/read.cgi/tech/1663235546/611
612: デフォルトの名無しさん (アウアウウー Sa9d-5cND) [sage] 2022/11/02(水) 19:51:27.03 ID:5K2+hbiBa >>609 そもそもが全部Cで実装されてるんだからそういうメモリモデルなんだ、という理解で良いと思うよ http://mevius.5ch.net/test/read.cgi/tech/1663235546/612
613: デフォルトの名無しさん (ブーイモ MM8d-YnjT) [sage] 2022/11/02(水) 19:53:06.08 ID:4MCwg8YuM >>611 あなたは何もわかってないのは理解できました http://mevius.5ch.net/test/read.cgi/tech/1663235546/613
614: デフォルトの名無しさん (アウアウウー Sa9d-mHKc) [sage] 2022/11/02(水) 19:57:27.92 ID:1xZXeW2Ya >>613 わかんない? 違うよ どんどん主張が後退するんじゃねえかなという期待の下、繰り返すけど http://mevius.5ch.net/test/read.cgi/tech/1663235546/614
615: デフォルトの名無しさん (ワッチョイ 7997-uk66) [] 2022/11/02(水) 21:11:39.58 ID:CsBXjP5R0 リンクリストはリスト的なものを作るときに第一の選択肢としてはこないと思うよ。 任意の要素へのアクセスがO(n)かかるから。 必ず頭から順番に読んで、途中に挿入したいことが多いとかいう状況だったら使うけど、こういう特性を、癖があると思う人の方が多いんじゃないかな。 そういうコンピュータサイエンスの初歩みたいなところの実装が気になるなら、Javaを勉強してみるといいかもね。 リストも辞書もセットも、複数の実装方法が標準で用意されてて明示的にどれを使うか決めなくちゃいけないから。 そう考えると初心者にJava教えてた頃ってコレクションで付いていけなくなり勉強を諦めた人多いんだろうか。 http://mevius.5ch.net/test/read.cgi/tech/1663235546/615
616: デフォルトの名無しさん (ワッチョイ 7997-uk66) [] 2022/11/02(水) 21:16:31.46 ID:CsBXjP5R0 >>609 夕飯を食べる前の自分と食べた後の自分は別のインスタンスか?って問いにyesと答えられるならばイミュータブルなものにしかidを付けてはいけないと考えているのだろう(そういう言語もある、Haskellとか) そうでなければ、ミュータブルなインスタンスはミュータブルなんだからidが同じでも中身は変化すると考えるべきだろう http://mevius.5ch.net/test/read.cgi/tech/1663235546/616
617: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/02(水) 21:22:30.41 ID:jJasVlr90 idってCでのアドレスそのものなんでしょ 実装の都合でアドレスが変わったらidも変わるというだけの話で、 何らかのポリシーみたいなものは背景に無いような http://mevius.5ch.net/test/read.cgi/tech/1663235546/617
618: デフォルトの名無しさん (ワッチョイ 7997-uk66) [] 2022/11/02(水) 21:30:55.81 ID:CsBXjP5R0 >>617 CPythonではな。(すみません知りませんでした) しかしGCがかかりまくるVM上で動くPythonの実装もあるから、CPythonではそうっていう認識に留めておいたほうがいいんじゃないかなあ。 http://mevius.5ch.net/test/read.cgi/tech/1663235546/618
619: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/02(水) 21:42:19.23 ID:2orW5ow60 idが変わる/変わらないとミュータブル/イミュータブルは一対一対応? http://mevius.5ch.net/test/read.cgi/tech/1663235546/619
620: デフォルトの名無しさん (ワッチョイ 7997-uk66) [] 2022/11/02(水) 22:06:28.39 ID:CsBXjP5R0 >>619 まず、イミュータブルというのをどう定義するかによると思うけど (タプルはイミュータブルだが、タプルの中にリストを入れた場合、リストほミュータブルで、リストに変更を加えてもタプルのインスタンスが新しくできるわけではない) そういうややこしい例を除いても、 イミュータブルならば、値を変えたらidが変わる 値を変えてもidが変わらないならミュータブル しか言えないんじゃない? http://mevius.5ch.net/test/read.cgi/tech/1663235546/620
621: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/02(水) 22:13:30.31 ID:F9kh54e50 定義や実装で何がミュータブルかがころころ変わってはいけなくて、 pythonではどんな環境でも同じものがミュータブルであるべき で、idが変わる/変わらないが環境依存ならば、idとミュータブルは関係ないことになる http://mevius.5ch.net/test/read.cgi/tech/1663235546/621
622: デフォルトの名無しさん (ワッチョイ d9f0-5cND) [sage] 2022/11/02(水) 22:18:06.81 ID:jyU6y3CY0 わけわからん http://mevius.5ch.net/test/read.cgi/tech/1663235546/622
623: デフォルトの名無しさん (ワントンキン MMd3-+Dbv) [sage] 2022/11/02(水) 22:20:05.72 ID:yCeW62XuM pythonの辞書ってc++のmapと違って内部でソートされてないからアクセス遅いっぽいんだよね keysで取り出しても登録した順だし 文字列でも数値でもキーにできるからそういうものなのか http://mevius.5ch.net/test/read.cgi/tech/1663235546/623
624: デフォルトの名無しさん (ワッチョイ 1379-87TA) [sage] 2022/11/02(水) 22:50:50.14 ID:rAnbDRgM0 >>615 最後尾への追加削除がO(1)だったからリンクリストだと思ったけど リアロケートの実装でどうにかそれっぽくなるんだねぇ 全く気にしてなかったけど、勉強になったわ http://mevius.5ch.net/test/read.cgi/tech/1663235546/624
625: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/02(水) 22:58:46.37 ID:P6hHm0TD0 ループで一つずつappendしていくようなコードは、 溜めておいて一気にどーんで高速化できそう http://mevius.5ch.net/test/read.cgi/tech/1663235546/625
626: デフォルトの名無しさん (ワッチョイ 694f-hZr9) [sage] 2022/11/02(水) 23:13:03.99 ID:Vdzb0Lkj0 Elixir なんて片方向リストだから、先頭の要素の追加・削除のみ速い。 末尾では全要素をたどる Ruby は両方向リストだったかな? http://mevius.5ch.net/test/read.cgi/tech/1663235546/626
627: デフォルトの名無しさん (ワッチョイ 8b10-WE8j) [] 2022/11/02(水) 23:41:13.42 ID:d827SSNz0 >>623 pythonの辞書は順番を保持することが仕様で規定されてる http://mevius.5ch.net/test/read.cgi/tech/1663235546/627
628: デフォルトの名無しさん (ワッチョイ 8b89-g96c) [sage] 2022/11/03(木) 00:20:58.38 ID:gcHdWorI0 3年くらい前からだっけ? キーバリューやから順番気にしたことなかったわ http://mevius.5ch.net/test/read.cgi/tech/1663235546/628
629: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/03(木) 00:37:59.14 ID:vWeFXHff0 順番が同じだとセキュリティの問題があるから意図的にランダムにしてなかったっけ http://mevius.5ch.net/test/read.cgi/tech/1663235546/629
630: デフォルトの名無しさん (ワッチョイ 7997-uk66) [] 2022/11/03(木) 00:45:24.21 ID:9oLRzF140 >>624 C++のvectorとか、JavaのArrayListの典型的な実装だと、リアロケートが発生するときに倍ぐらいの領域を予め確保しておく、ってのが普通って読んだな コードレベルで読んだ訳じゃないから確たるエビデンスがあるわけじゃないけど。 http://mevius.5ch.net/test/read.cgi/tech/1663235546/630
631: デフォルトの名無しさん (ワッチョイ 7997-uk66) [] 2022/11/03(木) 00:49:20.51 ID:9oLRzF140 辞書は3.5だかそのぐらいで入れた順になるように仕様が決まったよね それまではバラバラだったはず あとソート済みが欲しいならsortedcollectionsがあるんじゃないの Pythonでパフォーマンス気にするようなコード書いたことないから速くなるかは知らないが パフォーマンス気になるならもう普通にpybind11よ http://mevius.5ch.net/test/read.cgi/tech/1663235546/631
632: デフォルトの名無しさん (ワッチョイ 8b46-g96c) [sage] 2022/11/03(木) 01:13:09.17 ID:t2qUW0n10 動的配列は償却計算量の典型例だぞ http://mevius.5ch.net/test/read.cgi/tech/1663235546/632
633: デフォルトの名無しさん (ワッチョイ 13ad-ww+g) [sage] 2022/11/03(木) 09:06:43.51 ID:b87ZSO0X0 半島人w http://mevius.5ch.net/test/read.cgi/tech/1663235546/633
634: デフォルトの名無しさん (ワッチョイ 9397-pRvw) [sage] 2022/11/03(木) 13:19:41.92 ID:M31+WIXk0 ネトウヨはコードすら書けない http://mevius.5ch.net/test/read.cgi/tech/1663235546/634
635: デフォルトの名無しさん (ワッチョイ 692c-3A4z) [] 2022/11/03(木) 17:39:13.22 ID:JzcJhjtx0 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ではどうやって高速化できますか? http://mevius.5ch.net/test/read.cgi/tech/1663235546/635
636: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/03(木) 17:50:53.27 ID:6cc1wOit0 全角スペースでインデントするといい http://mevius.5ch.net/test/read.cgi/tech/1663235546/636
637: デフォルトの名無しさん (ワッチョイ 8b46-g96c) [sage] 2022/11/03(木) 17:57:37.28 ID:t2qUW0n10 エラトステネスの篩みたいなまともなアルゴリズムを使え http://mevius.5ch.net/test/read.cgi/tech/1663235546/637
638: デフォルトの名無しさん (ワッチョイ 1302-4ham) [sage] 2022/11/03(木) 18:05:57.27 ID:pngFKRCN0 >>635 range(2, n//2 + 1) を range(2, int(n**0.5)+1) にするだけで速くなると言うのは違うか。 n**0.5 は math を import するのが面倒だっただけ。。。 http://mevius.5ch.net/test/read.cgi/tech/1663235546/638
639: デフォルトの名無しさん (アウアウウー Sa9d-5cND) [sage] 2022/11/03(木) 18:12:13.51 ID:Tny9BBIXa しょーもないネタ振り http://mevius.5ch.net/test/read.cgi/tech/1663235546/639
640: デフォルトの名無しさん (JP 0He5-3A4z) [] 2022/11/03(木) 18:58:51.96 ID:Ppt07bQPH >>637 言語間の速度差を埋めたいという文脈で 片方により効率的なアルゴリズム使えというのは筋が違うと思う それやったら相手のCも早くなるやん http://mevius.5ch.net/test/read.cgi/tech/1663235546/640
641: デフォルトの名無しさん (ワッチョイ 8b46-g96c) [sage] 2022/11/03(木) 19:15:26.76 ID:t2qUW0n10 それはそうだけどPythonをできるだけ速くしようというのは徒労に終わるんだよな http://mevius.5ch.net/test/read.cgi/tech/1663235546/641
642: デフォルトの名無しさん (ガックシ 06eb-lAaw) [sage] 2022/11/03(木) 19:17:29.83 ID:5fumPTTR6 >>635 allかanyか使う http://mevius.5ch.net/test/read.cgi/tech/1663235546/642
643: デフォルトの名無しさん (ワッチョイ 1301-pRvw) [sage] 2022/11/03(木) 19:45:13.49 ID:NbsIPyEs0 >>640 > 言語間の速度差を埋めたいという文脈で そうか、単にPythonで高速化したいだけに見えるけど? > pythonではどうやって高速化できますか? http://mevius.5ch.net/test/read.cgi/tech/1663235546/643
644: デフォルトの名無しさん (ワッチョイ c108-UToK) [sage] 2022/11/03(木) 20:09:45.07 ID:6A5YXZlC0 >>635 sympy.isprime() http://mevius.5ch.net/test/read.cgi/tech/1663235546/644
645: デフォルトの名無しさん (ワッチョイ c108-UToK) [sage] 2022/11/03(木) 20:13:41.27 ID:6A5YXZlC0 >>635 そもそもこのプログラムは一行で済む print(sympy.primepi(250001)) http://mevius.5ch.net/test/read.cgi/tech/1663235546/645
646: デフォルトの名無しさん (ワッチョイ d347-gj4s) [sage] 2022/11/03(木) 20:16:42.18 ID:gDosIilW0 SymPy無いさー http://mevius.5ch.net/test/read.cgi/tech/1663235546/646
647: デフォルトの名無しさん (ワッチョイ 11da-++bF) [sage] 2022/11/03(木) 22:42:51.75 ID:qK/YTuYk0 Numpyさぁ http://mevius.5ch.net/test/read.cgi/tech/1663235546/647
648: デフォルトの名無しさん (ワッチョイ c1b0-ee5o) [sage] 2022/11/04(金) 11:06:17.40 ID:RgN4dMLC0 公式のドキュメント読むと 「pip は推奨されるインストーラ・プログラムです。 Python 3.4 からは、 Python バイナリ・インストーラに最初から付属するようになりました。」 とか見るけど、触る環境どれも最初からインストールされてた試しがなくて手動インストールばっかなんだが http://mevius.5ch.net/test/read.cgi/tech/1663235546/648
649: デフォルトの名無しさん (ワッチョイ 7933-MTQz) [] 2022/11/04(金) 11:16:46.46 ID:+Vzk9d850 >>648 どこのバイナリインストーラ使ってるの? http://mevius.5ch.net/test/read.cgi/tech/1663235546/649
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 353 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s