回答編集履歴

2

コメントを受けて修正

2021/06/09 03:03

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -12,9 +12,9 @@
12
12
 
13
13
  value_list= []
14
14
 
15
- iter = dict1.items().__iter__()
15
+ it = iter(dict1.items())
16
16
 
17
- for k, v in iter:
17
+ for k, v in it:
18
18
 
19
19
  print(k)
20
20
 
@@ -22,7 +22,7 @@
22
22
 
23
23
  if len(value_list) >= 2:
24
24
 
25
- dict2 = dict(iter)
25
+ dict2 = dict(it)
26
26
 
27
27
  break
28
28
 
@@ -36,9 +36,9 @@
36
36
 
37
37
  >>> value_list= []
38
38
 
39
- >>> iter = dict1.items().__iter__()
39
+ >>> it = iter(dict1.items())
40
40
 
41
- >>> for k, v in iter:
41
+ >>> for k, v in it:
42
42
 
43
43
  ... print(k)
44
44
 
@@ -46,7 +46,7 @@
46
46
 
47
47
  ... if len(value_list) >= 2:
48
48
 
49
- ... dict2 = dict(iter)
49
+ ... dict2 = dict(it)
50
50
 
51
51
  ... break
52
52
 

1

解説を追加

2021/06/09 03:03

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -65,3 +65,13 @@
65
65
  {'key3': 3, 'key4': 4}
66
66
 
67
67
  ```
68
+
69
+
70
+
71
+ 解説
72
+
73
+
74
+
75
+ for文を辞書を指定して回すと「残り」を取り出すことはできませんが、辞書のイテレータを指定して回すことで、繰り返し途中のイテレータから「残り」を取り出すことができます。ただし、取り出せるのはkeyとvalueのtupleですので、それをdictのコンストラクタに与えることで「残り」の辞書を得ることができます。
76
+
77
+ イテレータを理解することはfor文を使うために重要ですので、がんばって理解してください。