トップ «前の日記(2012-05-19(Sat)) 最新 次の日記(2012-05-21(Mon))» 編集

屑俺日記

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


2012-05-20(Sun) けだるいがやすめないうすぐもりのにちよう

list.extend(iterable)

あまり使ったことなかったらしい。

$ python3
Python 3.2.3 (default, May  3 2012, 15:51:42) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> list = []
 
>>> help(list.extend)
Help on built-in function extend:
 
extend(...)
    L.extend(iterable) -- extend list by appending elements \
 from the iterable
>>> list = ['foo']
>>> list.extend('あいうえお')
>>> list
['foo', 'あ', 'い', 'う', 'え', 'お']
>>> list.extend(range(2**27))
>>> len(list)
134217728
>>> list[-1]
134217727

次のプロンプトは、すぐには出なかったが、 このくらいの大きさならなんとか飲み込めるようだ。
この後で list = '' などとやってみたが、 これにもかなり時間がかかった。

>>> list.extend(range(2**64))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: Python int too large to convert to C ssize_t
 
>>> list.extend(range(2**30))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
MemoryError
 
>>> list.extend(range(2**28))
強制終了

OverflowError とか、MemoryError とかは一瞬で出たが、 強制終了されるまでは、しばらく待たされた。


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

index.htmlは ここから。