回答編集履歴

3

修正

2017/11/08 16:16

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -120,6 +120,14 @@
120
120
 
121
121
  ---
122
122
 
123
+ > **7.2. 代入文 (assignment statement)**
124
+
125
+
126
+
127
+ > [中略]
128
+
129
+
130
+
123
131
  > ターゲットリストが、カンマで区切られた複数のターゲットからなるリスト、もしくは角括弧で囲まれた単一のターゲットの場合: オブジェクトはターゲットリスト中のターゲット数と同じ数の要素からなるイテレート可能オブジェクトでなければならず、その各要素は左から右へと対応するターゲットに代入されます。
124
132
 
125
133
  - "星付き"のターゲットと呼ばれる、頭にアスタリスクが一つ付いたターゲットがターゲットリストに一つだけ含まれている場合: オブジェクトはイテラブルで、少なくともターゲットリストのターゲットの数よりも一つ少ない要素を持たなければはなりません。 星付きのターゲットより前のターゲットに、イテラブルの先頭の要素が左から右へ代入されます。 星付きのターゲットより後ろのターゲットに、イテラブルの末尾の要素が代入されます。 星付きのターゲットに、イテラブルの残った要素のリストが代入されます (リスト空でもかまいません)。

2

追記

2017/11/08 16:16

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -43,6 +43,8 @@
43
43
  ```
44
44
 
45
45
 
46
+
47
+ 応用
46
48
 
47
49
  ---
48
50
 
@@ -111,3 +113,19 @@
111
113
  [3, 4]
112
114
 
113
115
  ```
116
+
117
+
118
+
119
+ リファレンス
120
+
121
+ ---
122
+
123
+ > ターゲットリストが、カンマで区切られた複数のターゲットからなるリスト、もしくは角括弧で囲まれた単一のターゲットの場合: オブジェクトはターゲットリスト中のターゲット数と同じ数の要素からなるイテレート可能オブジェクトでなければならず、その各要素は左から右へと対応するターゲットに代入されます。
124
+
125
+ - "星付き"のターゲットと呼ばれる、頭にアスタリスクが一つ付いたターゲットがターゲットリストに一つだけ含まれている場合: オブジェクトはイテラブルで、少なくともターゲットリストのターゲットの数よりも一つ少ない要素を持たなければはなりません。 星付きのターゲットより前のターゲットに、イテラブルの先頭の要素が左から右へ代入されます。 星付きのターゲットより後ろのターゲットに、イテラブルの末尾の要素が代入されます。 星付きのターゲットに、イテラブルの残った要素のリストが代入されます (リスト空でもかまいません)。
126
+
127
+ - そうでない場合: オブジェクトは、ターゲットリストのターゲットと同じ数の要素を持つイテラブルでなければならず、要素は左から右へ対応するターゲットに代入されます。
128
+
129
+
130
+
131
+ 引用元:[Python 言語リファレンス - 7. 単純文 (simple statement)](https://docs.python.jp/3/reference/simple_stmts.html#assignment-statements)

1

追記

2017/11/08 16:14

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -41,3 +41,73 @@
41
41
  2
42
42
 
43
43
  ```
44
+
45
+
46
+
47
+ ---
48
+
49
+ なお、逆に複数の値を一つの変数に代入することも可能です。
50
+
51
+ ```Python
52
+
53
+ >>> fuga = 1, 2, 3
54
+
55
+ >>> fuga
56
+
57
+ (1, 2, 3)
58
+
59
+ ```
60
+
61
+
62
+
63
+ 応用として、複数の値を複数の変数に代入できます。
64
+
65
+ ただし、基本的には一対一に対応していなければなりません。
66
+
67
+ ```Python
68
+
69
+ >>> a, b, c = 1, 2, 3
70
+
71
+ >>> a
72
+
73
+ 1
74
+
75
+ >>> b
76
+
77
+ 2
78
+
79
+ >>> c
80
+
81
+ 3
82
+
83
+ >>> a, b, c = 1, 2, 3, 4
84
+
85
+ Traceback (most recent call last):
86
+
87
+ File "<stdin>", line 1, in <module>
88
+
89
+ ValueError: too many values to unpack (expected 3)
90
+
91
+ ```
92
+
93
+
94
+
95
+ 末尾だけまとめて受け取りたい場合は、次のようにします。
96
+
97
+ ```Python
98
+
99
+ >>> a, b, *c = 1, 2, 3, 4
100
+
101
+ >>> a
102
+
103
+ 1
104
+
105
+ >>> b
106
+
107
+ 2
108
+
109
+ >>> c
110
+
111
+ [3, 4]
112
+
113
+ ```