トップ «前の日記(2012-05-04(Fri)) 最新 次の日記(2012-05-14(Mon))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2012-05-06(Sun) 昨日はよく晴れた。今日はどんより

隙間だらけの配列

bashでは隙間は何もなし。 だったはずだ
今phpで確認したら、配列と連想配列の区別がないので、 ダブらない番号は適当に指定できる。
が、存在しない(整数の?)キーでアクセス しようとしたらエラーになった(当たり前か)。

<?php
$array1[3] = "bar";
echo $array1[0] , "\n";
?>
$ php test.php
PHP Notice:  Undefined offset: 0 in $PATH/test.php on line 3

python(3.2.3)では、離れた番号をキーにしようとした だけでエラーになった。
この場合はディクショナリを使うことになるらしい。

>>> L1 = []
>>> L1[43] = 'baz'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list assignment index out of range
>>> L1[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> D1 = {}
>>> D1[1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 1
>>> D1[88] = "foo"
>>> D1
{88: 'foo'}
>>> D1[88]
'foo'

で、キーの有無は、(おそらく2.6以上で)

>>> if 88 in D1: print('OK')
... else : print('NG')
... 
OK
>>> if 30 in D1: print('OK')
... else : print('NG')
... 
NG

サーチエンジンのために「スパース配列」と書いておこう。
入門書を読み返してきたが、キーと値が反対だった。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。