回答編集履歴
3
修正
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
追記
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
追記
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
|
+
```
|