回答編集履歴

2

追記

2017/09/28 17:36

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -97,3 +97,47 @@
97
97
  [collections.OrderedDict](https://docs.python.jp/3/library/collections.html#collections.OrderedDict)とかもありますが...
98
98
 
99
99
  リストで対応できる場合はそうした方が手間がかからないかと思います。
100
+
101
+
102
+
103
+ ついでに
104
+
105
+ ---
106
+
107
+ 同様のエラーを起こしてみた。
108
+
109
+ ```Python
110
+
111
+ >>> a = np.array([1])
112
+
113
+ >>> a
114
+
115
+ array([1])
116
+
117
+ >>> a.shape
118
+
119
+ (1,)
120
+
121
+ >>> a.shape[0]
122
+
123
+ 1
124
+
125
+ >>> b = np.array(1)
126
+
127
+ >>> b
128
+
129
+ array(1)
130
+
131
+ >>> b.shape
132
+
133
+ ()
134
+
135
+ >>> b.shape[0]
136
+
137
+ Traceback (most recent call last):
138
+
139
+ File "<stdin>", line 1, in <module>
140
+
141
+ IndexError: tuple index out of range
142
+
143
+ ```

1

修正

2017/09/28 17:36

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -26,13 +26,13 @@
26
26
 
27
27
  ---
28
28
 
29
- [リファレンス](https://docs.python.jp/3/library/stdtypes.html#dict.values)を見てみると、次のように書いてあります。
29
+ `dict.values()`の[リファレンス](https://docs.python.jp/3/library/stdtypes.html#dict.values)を見てみると、次のように書いてあります。
30
30
 
31
31
  > 辞書の値の新しいビューを返します。[ビューオブジェクトのドキュメント](https://docs.python.jp/3/library/stdtypes.html#dict-views) を参照してください。
32
32
 
33
33
 
34
34
 
35
- `dict.values()`の返り値はリストではないのです。
35
+ 返り値はリストではないのです。
36
36
 
37
37
  よって、次のように明示的にリストに変換すれば、エラーは解消されます。
38
38
 
@@ -62,7 +62,7 @@
62
62
 
63
63
  ...しかし。辞書型は通常、要素の順序を指定できません。
64
64
 
65
- ですので、結果がインデックスの形で返されても、本当に正しく参照できるのかは微妙です。
65
+ ですので、結果がインデックスの形で返されても、本当に正しく参照できるのかは微妙です。
66
66
 
67
67
 
68
68
 
@@ -83,3 +83,17 @@
83
83
 
84
84
 
85
85
  ...もっと簡単な方法があるかも。
86
+
87
+
88
+
89
+ ---
90
+
91
+ ※私の環境では、`counted_hsv_dic`の順序は崩れませんでした。
92
+
93
+ が、言語仕様上それを信頼していいのかは、ちょっと自信がないです。
94
+
95
+
96
+
97
+ [collections.OrderedDict](https://docs.python.jp/3/library/collections.html#collections.OrderedDict)とかもありますが...
98
+
99
+ リストで対応できる場合はそうした方が手間がかからないかと思います。