[過去ログ] Pythonのお勉強 Part68 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
601: (アウアウウー Sa9d-mHKc) 2022/11/02(水)19:12 ID:1xZXeW2Ya(3/6) AAS
>>597
別になんでもいいんです
602: (アウアウウー Sa9d-5cND) 2022/11/02(水)19:14 ID:5K2+hbiBa(1/3) AAS
答え書かれてるのに全く分かってなくて草
603: (アウアウウー Sa9d-mHKc) 2022/11/02(水)19:30 ID:1xZXeW2Ya(4/6) AAS
大学行くと実装と仕様の区別がつくようになるかも?
604: (ワッチョイ f102-+Dbv) 2022/11/02(水)19:31 ID:l50Y39h10(1/2) AAS
>>594
つまりポインタの配列
605(1): (ワッチョイ d347-gj4s) 2022/11/02(水)19:31 ID:ul/vZuFO0(3/4) AAS
listにappendすると、ポインタの配列の末尾にポインタが追加される
配列のサイズが変わるので、サイズを増やした配列を作ってコピーしないとできない
筈なのに、idを調べると変わらない
**ob_itemに入ってる値は変わるけど、**ob_item自体のアドレスは変わらない
ということ?
606: (ワッチョイ f102-+Dbv) 2022/11/02(水)19:33 ID:l50Y39h10(2/2) AAS
組み込みだから作り直した配列にidがコピーされてたり
607: (ワッチョイ fbe6-Sd0E) 2022/11/02(水)19:36 ID:oCOyjRuB0(1) AAS
VM上は指すオブジェクト変わってないのにid変わったらあかんでしょ
608: (ワッチョイ 1379-87TA) 2022/11/02(水)19:40 ID:rAnbDRgM0(1/2) AAS
適当にリンクリストあたりかと思ってた
609(2): (ワッチョイ d347-gj4s) 2022/11/02(水)19:40 ID:ul/vZuFO0(4/4) AAS
appendしても同じオブジェクトという時点で違和感があるんだよな
明らかに別物やん
仮にappendが非破壊で
list = list.append()
とした時にidが変わる方が納得できる
610: (アウアウウー Sa9d-5cND) 2022/11/02(水)19:40 ID:5K2+hbiBa(2/3) AAS
>>605
逆だよ
ob_item自体は大きさが変わる時にreallocでアドレスが変わるけど
中身の方はポインタをコピーするだけだから変わらない
611(1): (アウアウウー Sa9d-mHKc) 2022/11/02(水)19:42 ID:1xZXeW2Ya(5/6) AAS
>>597
違うって理解できた?
612: (アウアウウー Sa9d-5cND) 2022/11/02(水)19:51 ID:5K2+hbiBa(3/3) AAS
>>609
そもそもが全部Cで実装されてるんだからそういうメモリモデルなんだ、という理解で良いと思うよ
613(1): (ブーイモ MM8d-YnjT) 2022/11/02(水)19:53 ID:4MCwg8YuM(2/2) AAS
>>611
あなたは何もわかってないのは理解できました
614: (アウアウウー Sa9d-mHKc) 2022/11/02(水)19:57 ID:1xZXeW2Ya(6/6) AAS
>>613
わかんない?
違うよ
どんどん主張が後退するんじゃねえかなという期待の下、繰り返すけど
615(1): (ワッチョイ 7997-uk66) 2022/11/02(水)21:11 ID:CsBXjP5R0(1/4) AAS
リンクリストはリスト的なものを作るときに第一の選択肢としてはこないと思うよ。
任意の要素へのアクセスがO(n)かかるから。
必ず頭から順番に読んで、途中に挿入したいことが多いとかいう状況だったら使うけど、こういう特性を、癖があると思う人の方が多いんじゃないかな。
そういうコンピュータサイエンスの初歩みたいなところの実装が気になるなら、Javaを勉強してみるといいかもね。
リストも辞書もセットも、複数の実装方法が標準で用意されてて明示的にどれを使うか決めなくちゃいけないから。
そう考えると初心者にJava教えてた頃ってコレクションで付いていけなくなり勉強を諦めた人多いんだろうか。
616: (ワッチョイ 7997-uk66) 2022/11/02(水)21:16 ID:CsBXjP5R0(2/4) AAS
>>609
夕飯を食べる前の自分と食べた後の自分は別のインスタンスか?って問いにyesと答えられるならばイミュータブルなものにしかidを付けてはいけないと考えているのだろう(そういう言語もある、Haskellとか)
そうでなければ、ミュータブルなインスタンスはミュータブルなんだからidが同じでも中身は変化すると考えるべきだろう
617(1): (ワッチョイ d347-gj4s) 2022/11/02(水)21:22 ID:jJasVlr90(1) AAS
idってCでのアドレスそのものなんでしょ
実装の都合でアドレスが変わったらidも変わるというだけの話で、
何らかのポリシーみたいなものは背景に無いような
618: (ワッチョイ 7997-uk66) 2022/11/02(水)21:30 ID:CsBXjP5R0(3/4) AAS
>>617
CPythonではな。(すみません知りませんでした)
しかしGCがかかりまくるVM上で動くPythonの実装もあるから、CPythonではそうっていう認識に留めておいたほうがいいんじゃないかなあ。
619(1): (ワッチョイ d347-gj4s) 2022/11/02(水)21:42 ID:2orW5ow60(1) AAS
idが変わる/変わらないとミュータブル/イミュータブルは一対一対応?
620: (ワッチョイ 7997-uk66) 2022/11/02(水)22:06 ID:CsBXjP5R0(4/4) AAS
>>619
まず、イミュータブルというのをどう定義するかによると思うけど
(タプルはイミュータブルだが、タプルの中にリストを入れた場合、リストほミュータブルで、リストに変更を加えてもタプルのインスタンスが新しくできるわけではない)
そういうややこしい例を除いても、
イミュータブルならば、値を変えたらidが変わる
値を変えてもidが変わらないならミュータブル
しか言えないんじゃない?
621: (ワッチョイ d347-gj4s) 2022/11/02(水)22:13 ID:F9kh54e50(1) AAS
定義や実装で何がミュータブルかがころころ変わってはいけなくて、
pythonではどんな環境でも同じものがミュータブルであるべき
で、idが変わる/変わらないが環境依存ならば、idとミュータブルは関係ないことになる
622: (ワッチョイ d9f0-5cND) 2022/11/02(水)22:18 ID:jyU6y3CY0(6/6) AAS
わけわからん
623(1): (ワントンキン MMd3-+Dbv) 2022/11/02(水)22:20 ID:yCeW62XuM(1) AAS
pythonの辞書ってc++のmapと違って内部でソートされてないからアクセス遅いっぽいんだよね
keysで取り出しても登録した順だし
文字列でも数値でもキーにできるからそういうものなのか
624(1): (ワッチョイ 1379-87TA) 2022/11/02(水)22:50 ID:rAnbDRgM0(2/2) AAS
>>615
最後尾への追加削除がO(1)だったからリンクリストだと思ったけど
リアロケートの実装でどうにかそれっぽくなるんだねぇ
全く気にしてなかったけど、勉強になったわ
625: (ワッチョイ d347-gj4s) 2022/11/02(水)22:58 ID:P6hHm0TD0(1) AAS
ループで一つずつappendしていくようなコードは、
溜めておいて一気にどーんで高速化できそう
626: (ワッチョイ 694f-hZr9) 2022/11/02(水)23:13 ID:Vdzb0Lkj0(1) AAS
Elixir なんて片方向リストだから、先頭の要素の追加・削除のみ速い。
末尾では全要素をたどる
Ruby は両方向リストだったかな?
627: (ワッチョイ 8b10-WE8j) 2022/11/02(水)23:41 ID:d827SSNz0(1) AAS
>>623
pythonの辞書は順番を保持することが仕様で規定されてる
628: (ワッチョイ 8b89-g96c) 2022/11/03(木)00:20 ID:gcHdWorI0(1) AAS
3年くらい前からだっけ?
キーバリューやから順番気にしたことなかったわ
629: (ワッチョイ d347-gj4s) 2022/11/03(木)00:37 ID:vWeFXHff0(1) AAS
順番が同じだとセキュリティの問題があるから意図的にランダムにしてなかったっけ
630: (ワッチョイ 7997-uk66) 2022/11/03(木)00:45 ID:9oLRzF140(1/2) AAS
>>624
C++のvectorとか、JavaのArrayListの典型的な実装だと、リアロケートが発生するときに倍ぐらいの領域を予め確保しておく、ってのが普通って読んだな
コードレベルで読んだ訳じゃないから確たるエビデンスがあるわけじゃないけど。
上下前次1-新書関写板覧索設栞歴
あと 372 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.018s