僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。
>>> def genalpha(*args): ... for i in range(*args): ... yield chr(i) ... >>> x = genalpha(65,91) >>> x.next() 'A' >>> x.next() 'B'
def mkstring(): large_a = 65 large_z = 90 return [chr(x) for x in range(large_a,large_z + 1)]
を何度も実行させてみた。
times = 100000 largestring =''.join(mkstring() * times) print("End")
これでPen4 1.8GHz な機器で、0.6秒ほどだった。
times = 100000 largestring = '' for num in range(times): largestring += ''.join(mkstring()) print("End")
この方法だと、3秒くらいになった。
2.x と 3.x の違いに少々嵌った。
本に載ってたのは2.x向けのサンプル。
>>> L1 = [x for x in range(1,5)] >>> L2 = [x + 4 for x in range(1,5)] >>> L1, L2 ([1, 2, 3, 4], [5, 6, 7, 8]) >>> zip(L1, L2) [(1, 5), (2, 6), (3, 7), (4, 8)]
3.x では zip はイテレータを返すようになった
>>> zip(L1,L2) <zip object at 0xb7bb110c> >>> list(zip(L1, L2)) [(1, 5), (2, 6), (3, 7), (4, 8)]
リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。