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

回答編集履歴

1

追記

2018/09/10 07:28

投稿

LouiS0616
LouiS0616

スコア35676

answer CHANGED
@@ -33,4 +33,29 @@
33
33
  ```
34
34
 
35
35
  どちらにせよ『辞書らしい』使い方にはならないので、
36
- 本当にスライスに依る切り出しが必要かどうかはしっかり検討した方が良いです。
36
+ 本当にスライスに依る切り出しが必要かどうかはしっかり検討した方が良いです。
37
+
38
+ コメントを受けて
39
+ ---
40
+ > 以下のように一般的な辞書宣言はできないという理解で正しいでしょうか。
41
+
42
+ #### Python3.6なら
43
+ キーワード引数の挿入順序なら既に保証されているので、次のように書けます。
44
+ ```Python
45
+ dct = SliceableDict(
46
+ a=['apple', 'assimulation'],
47
+ b=['banana', 'bag'],
48
+ c=['cap', 'cat']
49
+ )
50
+ ```
51
+
52
+ #### Python3.7、あるいはCPython実装の3.6では
53
+ 辞書表現の評価順序が以前のバージョンから保証されているほか、
54
+ 組み込み辞書の挿入順序が新たに保証されているので、次のように書けます。
55
+ ```Python
56
+ dct = SliceableDict({
57
+ 'a': ['apple', 'assimulation'],
58
+ 'b': ['banana', 'bag'],
59
+ 'c': ['cap', 'cat']
60
+ })
61
+ ```