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

回答編集履歴

4

追記

2017/10/15 17:24

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -17,4 +17,11 @@
17
17
  ```Python
18
18
  for datum in data:
19
19
  text.append(len(datum["tags"]))
20
- ```
20
+ ```
21
+
22
+ なお、上記コードは次のようにも書けます。
23
+ ```Python
24
+ text = [len(datum["tags"]) for datum in data]
25
+ ```
26
+
27
+ リスト内包表記と呼ばれるものです。慣れてくるとこっちの方が見やすくなります。

3

修正

2017/10/15 17:24

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -16,5 +16,5 @@
16
16
  こうすればたぶん通りますよ。意図したとおりかわかりませんが。
17
17
  ```Python
18
18
  for datum in data:
19
- text.append(len(i["tags"]))
19
+ text.append(len(datum["tags"]))
20
20
  ```

2

追記

2017/10/15 17:12

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -11,4 +11,10 @@
11
11
  Traceback (most recent call last):
12
12
  File "<stdin>", line 1, in <module>
13
13
  TypeError: 'int' object is not iterable
14
+ ```
15
+
16
+ こうすればたぶん通りますよ。意図したとおりかわかりませんが。
17
+ ```Python
18
+ for datum in data:
19
+ text.append(len(i["tags"]))
14
20
  ```

1

追記

2017/10/15 17:07

投稿

LouiS0616
LouiS0616

スコア35678

answer CHANGED
@@ -1,2 +1,14 @@
1
1
  `len["tags"]`は、`["tags"]`の要素数を返します。
2
- リストの中には単一の文字列しかないので、返る値は常に1です。
2
+ リストの中には単一の文字列しかないので、返る値は常に1です。
3
+
4
+ ---
5
+ > TypeError: 'int' object is not iterable とエラーがでます。
6
+
7
+ list.extendの引数は整数じゃだめだからです。
8
+ ```Python
9
+ >>> [].extend([1])
10
+ >>> [].extend(1)
11
+ Traceback (most recent call last):
12
+ File "<stdin>", line 1, in <module>
13
+ TypeError: 'int' object is not iterable
14
+ ```