読者です 読者をやめる 読者になる 読者になる

methaneのブログ

このブログに乗せているサンプルコードはすべてNYSLです。

値型と参照型

http://d.hatena.ne.jp/yaneurao/20060506#p1
結局、どの言語でも、最初に値型と参照型の区別を覚えないといけないんだな。そして気をつけて使うと。
2チャンネルのPythonスレでも、空要素10個のリストをどう作るか?という話題があって、以下の2つの方法が比べられていた。

>>> n = [[]] * 10
>>> m = [ [] for i in range(10) ]
>>>
>>> print n
[[], [], [], [], [], [], [], [], [], []]
>>> print m
[[], [], [], [], [], [], [], [], [], []]
>>>
>>> n[1].append('N')
>>> m[1].append('N')
>>> print n
[['N'], ['N'], ['N'], ['N'], ['N'], ['N'], ['N'], ['N'], ['N'], ['N']]
>>> print m
[[], ['N'], [], [], [], [], [], [], [], []]
>>>

静的型付けでも動的型付けでも関係ないと。