teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

追記

2017/11/29 08:28

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
@@ -10,4 +10,85 @@
10
10
  一方で、
11
11
  spe += a[i:i+9]
12
12
  をすると、まずspeはaso01_speであり、それにa[i:i+9]を追加します。
13
- ゆえにaso01_speの中身にa[i:i+9]が加わります。
13
+ ゆえにaso01_speの中身にa[i:i+9]が加わります。
14
+
15
+ ---
16
+ 追記:idを見てみる
17
+ ```python
18
+ sensei01_spe,sensei02_spe, sensei03_spe, aso01_spe, aso02_spe, aso03_spe = [], [], [], [], [], []
19
+ spe_list = [sensei01_spe,sensei02_spe, sensei03_spe, aso01_spe, aso02_spe, aso03_spe]
20
+ print(id(aso01_spe))
21
+ #4321501320
22
+
23
+ a = [264613.12723114301, 213530.38763031978, 163810.61130664896, 136871.05704474563, 116101.8574003962, 94862.205318461289, 76882.988823338295, 64967.385627235752, 56649.812648108447, 235490.94770532235, 223653.85964166056, 171781.0752035192, 143659.12178123076, 121747.11404648534, 99414.953211499684, 80205.550783447776, 67749.520142203764, 58972.704983976939, 258968.2505837474, 199318.79810241674, 153318.88851751294, 128140.27967669716, 108742.10307887496, 88866.712291087097, 71950.44413915115, 60982.057699482684, 52960.99886607263, 613638.79095825891, 583022.1346845167, 447659.34633396397, 374373.33102659252, 317155.96087360661, 258911.54298057302, 209115.76781486484, 176587.5132472465, 153429.55672548222, 694138.44600377022, 534840.02950766473, 410845.64037928835, 343736.22689563455, 291540.03973971767, 238380.26147863301, 192970.63366398562, 163485.75761805839, 142077.4040784016, 695474.49894273863, 535824.57435067231, 411609.46646169998, 344390.54762963147, 292077.40171641973, 238831.97944460437, 193331.39981859887, 163791.7886542324, 142344.17486671402]
24
+
25
+ for i, spe in zip(range(0, 6), spe_list):
26
+ print(i)
27
+ print(id(spe))
28
+ spe += a[i:i+9]
29
+ print(id(spe))
30
+ '''
31
+ 0
32
+ 4321492936
33
+ 4321492936
34
+ 1
35
+ 4321503112
36
+ 4321503112
37
+ 2
38
+ 4321502728
39
+ 4321502728
40
+ 3
41
+ 4321501320
42
+ 4321501320
43
+ 4
44
+ 4321502792
45
+ 4321502792
46
+ 5
47
+ 4321593800
48
+ 4321593800
49
+ '''
50
+
51
+ print(aso01_spe)
52
+ #[136871.05704474563, 116101.8574003962, 94862.20531846129, 76882.9888233383, 64967.38562723575, 56649.81264810845, 235490.94770532235, 223653.85964166056, 171781.0752035192]
53
+ print(id(aso01_spe))
54
+ #4321501320
55
+ ```
56
+
57
+ ```python
58
+ sensei01_spe,sensei02_spe, sensei03_spe, aso01_spe, aso02_spe, aso03_spe = [], [], [], [], [], []
59
+ spe_list = [sensei01_spe,sensei02_spe, sensei03_spe, aso01_spe, aso02_spe, aso03_spe]
60
+ print(id(aso01_spe))
61
+ #4320514184
62
+
63
+ a = [264613.12723114301, 213530.38763031978, 163810.61130664896, 136871.05704474563, 116101.8574003962, 94862.205318461289, 76882.988823338295, 64967.385627235752, 56649.812648108447, 235490.94770532235, 223653.85964166056, 171781.0752035192, 143659.12178123076, 121747.11404648534, 99414.953211499684, 80205.550783447776, 67749.520142203764, 58972.704983976939, 258968.2505837474, 199318.79810241674, 153318.88851751294, 128140.27967669716, 108742.10307887496, 88866.712291087097, 71950.44413915115, 60982.057699482684, 52960.99886607263, 613638.79095825891, 583022.1346845167, 447659.34633396397, 374373.33102659252, 317155.96087360661, 258911.54298057302, 209115.76781486484, 176587.5132472465, 153429.55672548222, 694138.44600377022, 534840.02950766473, 410845.64037928835, 343736.22689563455, 291540.03973971767, 238380.26147863301, 192970.63366398562, 163485.75761805839, 142077.4040784016, 695474.49894273863, 535824.57435067231, 411609.46646169998, 344390.54762963147, 292077.40171641973, 238831.97944460437, 193331.39981859887, 163791.7886542324, 142344.17486671402]
64
+
65
+ for i, spe in zip(range(0, 6), spe_list):
66
+ print(i)
67
+ print(id(spe))
68
+ spe = a[i:i+9]
69
+ print(id(spe))
70
+ '''
71
+ 0
72
+ 4320505800
73
+ 4320606920
74
+ 1
75
+ 4320515976
76
+ 4320606920
77
+ 2
78
+ 4320515592
79
+ 4320606920
80
+ 3
81
+ 4320514184
82
+ 4320606920
83
+ 4
84
+ 4320515656
85
+ 4320606920
86
+ 5
87
+ 4320606664
88
+ 4320606920
89
+ '''
90
+ print(aso01_spe)
91
+ #[]
92
+ print(id(aso01_spe))
93
+ #4320514184
94
+ ```

1

追記

2017/11/29 08:28

投稿

mkgrei
mkgrei

スコア8562

answer CHANGED
@@ -1,1 +1,13 @@
1
- spe += a[i:i+9]
1
+ spe += a[i:i+9]
2
+
3
+ ---
4
+ 補足
5
+ pythonでポインタっぽいことをやろうと思ったら、結構繊細です。
6
+ spe = a[i:i+9]
7
+ というのは
8
+ speの指す場所をaso01_speからa[i:i+9]に変更しています。
9
+ なので、aso01_speは[]のまま変更されません。
10
+ 一方で、
11
+ spe += a[i:i+9]
12
+ をすると、まずspeはaso01_speであり、それにa[i:i+9]を追加します。
13
+ ゆえにaso01_speの中身にa[i:i+9]が加わります。