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

回答編集履歴

1

コメントへの回答追加

2021/11/03 14:24

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -13,4 +13,24 @@
13
13
 
14
14
  - 質問3 今の繰り返しの代入によって同じ値になってしまわないのでしょうか?
15
15
 
16
- spectrogram[frame_idx, :] = log_absolute は、変数への代入ではなくndarrayのスライスへの代入ですので、そのようなことは起こりません。
16
+ spectrogram[frame_idx, :] = log_absolute は、変数への代入ではなくndarrayのスライスへの代入ですので、そのようなことは起こりません。
17
+
18
+ コメントへの追加回答
19
+
20
+ - スライスへの代入ではなぜ起こらないのでしょうか?
21
+
22
+ そういうように、Pythonの文法で決めているからです
23
+ 詳細を知りたければ、[公式ドキュメント 言語リファレンス 7.2. 代入文 (assignment statement)](https://docs.python.org/ja/3/reference/simple_stmts.html#assignment-statements)の「ターゲットが変更可能なオブジェクト (属性参照、添字表記、またはスライス) の一部である場合」に続く部分をお読みください。
24
+
25
+ 例で理解したいなら、以下を実行してみて下さい。
26
+
27
+ ```Python
28
+ >>> list1 = ['A', 'B', 'C']
29
+ >>> list2 = ['1', '2']
30
+ >>> list1[1:] = list2
31
+ >>> print(list1)
32
+ ['A', '1', '2']
33
+ >>> list2[0] = 'abc'
34
+ >>> print(list1)
35
+ ['A', '1', '2']
36
+ ```