pythonでlist型のarrについてx=arr.pop(0)と書くのとx,arr=arr[0], arr[1:]って書くのってかかる時間同じですか?

サムネイル
1 : 2022/10/22(土) 16:55:20.541 ID:lpPRUyxFM
どっちもオーダnですか?
2 : 2022/10/22(土) 16:56:03.578 ID:vAlmq2780
つベンチ
5 : 2022/10/22(土) 16:57:40.778 ID:lpPRUyxFM
>>2
めんどくさいんですが知らないですか?
3 : 2022/10/22(土) 16:57:22.462 ID:dl5qC96ra
さあ?
6 : 2022/10/22(土) 16:57:58.455 ID:lpPRUyxFM
>>3
教えてください
4 : 2022/10/22(土) 16:57:35.591 ID:V6Gsxd0X0
数万回ループして時間測る
7 : 2022/10/22(土) 16:58:11.476 ID:lpPRUyxFM
>>4
めんどくさいんですが知らないですか?
8 : 2022/10/22(土) 16:58:38.715 ID:yH1cbVcJa
そんなんPythonの実装によるだろ
11 : 2022/10/22(土) 16:59:21.917 ID:lpPRUyxFM
>>8
バージョンの話ですか?
9 : 2022/10/22(土) 16:58:42.171 ID:RG574t/D0
popは意味が全然違う気がするがオーダーなら同じじゃね
14 : 2022/10/22(土) 17:00:41.266 ID:lpPRUyxFM
>>9
前者は手前に一つずつずらしてオーダn、後者は先頭のアドレスずらすだけだからオーダ1かなと思ったんですが違うんですか?
10 : 2022/10/22(土) 16:59:08.840 ID:k0B3iAnM0
そもそもpopってオーダーnなのか?
イテレータずらしてるだけじゃないの
13 : 2022/10/22(土) 17:00:12.070 ID:Ur75Lkuea
>>10
arr[1:]は?
12 : 2022/10/22(土) 16:59:43.067 ID:cQYMBh+ad
同じわけないだろ馬鹿なのか?
15 : 2022/10/22(土) 17:00:49.066 ID:9Y1rGZ4Dd
お前のタイピング速度による
16 : 2022/10/22(土) 17:01:52.941 ID:iEAn5mFlM
popは配列の後ろから要素を取り出す
arr[1:]だと配列の前から取り出す事になるよ
20 : 2022/10/22(土) 17:03:03.268 ID:lpPRUyxFM
>>16
引数が0なので手前から取りますよ
17 : 2022/10/22(土) 17:02:45.477 ID:iEAn5mFlM
あ、pop(0)と書いてんのね
どっちもオーダーは一緒でO(n)だよ
18 : 2022/10/22(土) 17:02:51.414 ID:YyGcpe4j0
じゃあ同じで良いよ
22 : 2022/10/22(土) 17:04:52.101 ID:iEAn5mFlM
Pythonのスライスはコピーだから効率が悪い
Cのようなスライスがやりたい場合はmemory viewというのがある
ただし割と使いにくい
25 : 2022/10/22(土) 17:06:17.887 ID:lpPRUyxFM
>>22
コピーってこと忘れてました
解決しました
23 : 2022/10/22(土) 17:05:10.731 ID:7Vwr7xfR0
違うと思うよ
28 : 2022/10/22(土) 17:08:52.338 ID:7Vwr7xfR0
いや一緒だわ
時間は知らんが
30 : 2022/10/22(土) 17:11:05.317 ID:wHjiKx4Ua
スライスは参照だからコピーにしてるのはわかるけどpopは?
元の配列は要らなくなるから壊してもいい気がするけど
32 : 2022/10/22(土) 17:17:30.237 ID:lpPRUyxFM
indexずらすコードにしたらくっそ速くなった
34 : 2022/10/22(土) 17:18:50.660 ID:8hfzSSpy0
ランダムアクセスの配列か線形リスト構造かによる
36 : 2022/10/22(土) 17:30:43.146
試したけど普通にpopのほうが圧倒的に速いな
37 : 2022/10/22(土) 17:35:47.677
オーダーはどっちもnだった
39 : 2022/10/22(土) 17:51:22.626 ID:4tgTCxm60
おじ乳輪さんC言語読めないんだ
かわいそう
40 : 2022/10/22(土) 17:52:08.090
俺の仕事はC言語を使う
42 : 2022/10/22(土) 17:56:53.259
コピー時間自体はほぼゼロで他の処理の時間が大半なのか?
43 : 2022/10/22(土) 17:58:18.952
まぁ結局は理論よりベンチ回すしかないってことやな
44 : 2022/10/22(土) 17:58:44.560 ID:oM4/jfT9a
オーダーとか言う割にあんま知らないんだな…
47 : 2022/10/22(土) 18:12:51.151
いや、ほぼ比例してるってこと。
ゼロに近づくだけでゼロになるとは言ってない。

コメント

タイトルとURLをコピーしました