回答編集履歴

3

d

2019/06/11 16:17

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -1,3 +1,7 @@
1
+ ## コードの内容とエラーの原因
2
+
3
+
4
+
1
5
  ループでは次の1~3の処理が行われています。
2
6
 
3
7
 
@@ -14,7 +18,11 @@
14
18
 
15
19
 
16
20
 
21
+ ## リストの各文字を大文字にするコード
22
+
23
+
24
+
17
- コードを簡略化すると以下のようになります。
25
+ 先程のコードを簡略化すると以下のようになります。
18
26
 
19
27
 
20
28
 

2

d

2019/06/11 16:17

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -11,3 +11,47 @@
11
11
 
12
12
 
13
13
  もし、3番目を `tv = new` としてしまうと、リストであったはずの `tv` が上書きされてしまい、次のループで1に戻って来た時点で `tv` がリストではなく、先程の new の値になってしまっているので、エラーとなります。
14
+
15
+
16
+
17
+ コードを簡略化すると以下のようになります。
18
+
19
+
20
+
21
+ ```python
22
+
23
+ tv = ["GOT", "Narcos", "Vice"]
24
+
25
+
26
+
27
+ for i in range(len(tv)):
28
+
29
+ # i 番目の要素を大文字にする。
30
+
31
+ tv[i] = tv[i].upper()
32
+
33
+
34
+
35
+ print(tv) # ['GOT', 'NARCOS', 'VICE']
36
+
37
+ ```
38
+
39
+
40
+
41
+ 内包記法でやると以下
42
+
43
+
44
+
45
+ ```python
46
+
47
+ tv = ["GOT", "Narcos", "Vice"]
48
+
49
+
50
+
51
+ # すべての要素を大文字にする。
52
+
53
+ tv = [x.upper() for x in tv]
54
+
55
+ print(tv) # ['GOT', 'NARCOS', 'VICE']
56
+
57
+ ```

1

d

2019/06/11 16:16

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- 1. リスト tv の i 番目の要素を `tv[i]` で取得し、変数 `new` に代入
5
+ 1. リスト `tv``i` 番目の要素を `tv[i]` で取得し、変数 `new` に代入する。
6
6
 
7
7
  2. `new = new.upper()` で大文字にする。
8
8
 
@@ -10,4 +10,4 @@
10
10
 
11
11
 
12
12
 
13
- もし、3番目を `tv = new` としてしまうと、リストであった `tv` が上書きされてしまい、次のループで1に来た時点で `tv` がリストではなく、先程の new の値になってしまっているので、エラーとなります。
13
+ もし、3番目を `tv = new` としてしまうと、リストであったはずの `tv` が上書きされてしまい、次のループで1に戻って来た時点で `tv` がリストではなく、先程の new の値になってしまっているので、エラーとなります。