[過去ログ]
Pythonのお勉強 Part68 (1002レス)
Pythonのお勉強 Part68 http://mevius.5ch.net/test/read.cgi/tech/1663235546/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
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/166323
5546/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
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 358 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.069s