回答編集履歴
4
d
test
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
-
enumerate オブジェクトは iterator であり、__next__() が呼ばれると、インスタンス化したときに渡した iterable なオブジェクトの要素を添え字付きで1つずつ返すようになっています。
|
39
|
+
enumerate オブジェクトは iterator であり、`__next__()` が呼ばれると、インスタンス化したときに渡した iterable なオブジェクトの要素を添え字付きで1つずつ返すようになっています。
|
40
40
|
|
41
41
|
添字操作をする場合は「list() でリストにする」など添字操作が行えるオブジェクトに変換する必要があります。
|
42
42
|
|
3
g
test
CHANGED
@@ -36,7 +36,7 @@
|
|
36
36
|
|
37
37
|
|
38
38
|
|
39
|
-
enumerate オブジェクトは itera
|
39
|
+
enumerate オブジェクトは iterator であり、__next__() が呼ばれると、インスタンス化したときに渡した iterable なオブジェクトの要素を添え字付きで1つずつ返すようになっています。
|
40
40
|
|
41
41
|
添字操作をする場合は「list() でリストにする」など添字操作が行えるオブジェクトに変換する必要があります。
|
42
42
|
|
2
d
test
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
> 1.エラーの意味は「添え字にアクセスできないオブジェクトです」ですか?
|
2
|
+
|
3
|
+
その認識であっています。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
> 2.list()があるとエラーが出ないようになる理屈を教えてください
|
8
|
+
|
9
|
+
添字でアクセスできるオブジェクトに変換したため。
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
----
|
14
|
+
|
15
|
+
|
16
|
+
|
1
17
|
[組み込み関数 — Python 3.7.3rc1 ドキュメント](https://docs.python.org/ja/3/library/functions.html#enumerate)
|
2
18
|
|
3
19
|
|
@@ -59,3 +75,9 @@
|
|
59
75
|
print(list(enum)) # [(0, 1), (1, 2), (2, 3), (3, 4)]
|
60
76
|
|
61
77
|
```
|
78
|
+
|
79
|
+
> 3.そもそも[:max_length]は不要な気がするのですが、なぜあるのでしょうか
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
コメントの `We will only consider the first `max_length` words in each sample.` とあるように文章は長さがまちまちなので、各要素が単語である文章を表すリストから最大で max_length 要素だけ取り出すということですね。
|
1
え
test
CHANGED
@@ -6,15 +6,23 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
|
9
|
+
enumerate() の返り値は enumerate オブジェクトであって、添字操作はサポートされていません。(subscribtableでない)
|
10
|
-
|
11
|
-
enumerate オブジェクトは iterable であり、__iter__() が呼ばれると、インスタンス化したときに渡した iterable なオブジェクトを添え字付きで1つずつ返すというものです。
|
12
10
|
|
13
11
|
|
14
12
|
|
13
|
+
以下の例では、enumerate() の返り値 enum は [(0, 1), (1, 2), (2, 3), (3, 4)] のようなリストであると思って添字操作を行ったのだと思いますが、enum[:2] のように添字操作は行なえません。
|
14
|
+
|
15
|
+
```
|
16
|
+
|
17
|
+
enum = enumerate([1, 2, 3, 4])
|
18
|
+
|
19
|
+
```
|
15
20
|
|
16
21
|
|
22
|
+
|
23
|
+
enumerate オブジェクトは iterable であり、`__iter__()` が呼ばれると、インスタンス化したときに渡した iterable なオブジェクトを添え字付きで1つずつ返すようになっています。
|
24
|
+
|
17
|
-
添字操作をする場合は
|
25
|
+
添字操作をする場合は「list() でリストにする」など添字操作が行えるオブジェクトに変換する必要があります。
|
18
26
|
|
19
27
|
|
20
28
|
|