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