メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2008年2月2日土曜日

[Python][お勉強] Python入門(13) - 代入ステートメント

これまではプリミティブなオブジェクトについて見てきたが、いよいよプログラミングっぽいところに入る。
最初は代入ステートメントらしい。

代入ステートメント
=という記号を使用して右辺のオブジェクトリファレンスを左辺の変数に代入する。
代入ステートメントを使用するにあたっての注意点は以下のとおり。

  • 代入するとオブジェクトのリファレンスが作成される。
  • 変数はオブジェクトを代入すると作成できる。
  • よって値の代入されていない変数は使用できない。
  • =記号なしで代入が行われるパターンがある。

代入ステートメントの基本的な形

代入ステートメントの基本的な形は以下のとおり。
ステートメント説明
spam = 'Spam'基本的な代入
spam, ham = 'spam', 'ham'タプル代入
[spam,ham] = ['spam','ham']リスト代入
spam = ham = 'lunch'マルチターゲット

1行目の例はよしとして、2行目は文字列'spam'のリファレンスが変数spamに代入され、文字列'ham'のリファレンスが変数hamに代入される。3行目も右辺の文字列'spam'のリファレンスが左辺の変数spamに代入され右辺の文字列'ham'のリファレンスが左辺の変数hamに代入される。
2行目、3行目の代入のことを「アンパック代入」という。
4行目は文字列'lunch'のリファレンスが変数hamと変数spamに代入される。このような代入のことを「マルチターゲット代入」という。


さっそく実際にやってみる。
タプル代入。

>>> a , b = 10, '20'
>>> a
10
>>> b
'20'
>>> a, b = (20, '30')
>>> a
20
>>> b
'30'


リスト代入。

>>> [a,b]=[1,2]
>>> a
1
>>> b
2
>>> [a,b]=[b,a]
>>> a
2
>>> b
1


ほっほう。

マルチターゲットはいいや。

タプル代入とリスト代入は、左辺の要素数と同数の要素さえ持っていれば別の型のシーケンスを指定することもできる。

>>> a,b,c,d,e,f,g="abcdefg"
>>> a,b,c,d,e,f,g
('a', 'b', 'c', 'd', 'e', 'f', 'g')
>>> a,b,c,d,e,f,g="abcdefg"
>>> a,b,c,d,e,f,g
('a', 'b', 'c', 'd', 'e', 'f', 'g')
>>> [a,b,c,d,e,f,g]='gfedcba'
>>> [a,b,c,d,e,f,g]
['g', 'f', 'e', 'd', 'c', 'b', 'a']
>>> [a,b,c,d,e,f,g] = (g,f,e,d,c,b,a)
>>> [a,b,c,d,e,f,g]
['a', 'b', 'c', 'd', 'e', 'f', 'g']

こりゃらくだ。


数値を生成してくれる便利関数もある。

>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> range(5)
[0, 1, 2, 3, 4]



なるほど。ここまではOK。




.

0 コメント: