- 1 名前:デフォルトの名無しさん [2008/06/13(金) 04:22:02 ]
- Python オフィシャルサイト
ttp://www.python.org/ ttp://www.python.org/doc/ 日本Pythonユーザ会 ttp://www.python.jp/Zope/ ttp://www.python.jp/doc/ FrontPage - Pythonのお勉強 ttp://python.rdy.jp/ 前スレ pc11.2ch.net/test/read.cgi/tech/1209480428/ ◆関連スレッド Microsoft IronPython 1.0 pc11.2ch.net/test/read.cgi/tech/1157686822/ Python の宿題ここで答えます Part 1 pc11.2ch.net/test/read.cgi/tech/1153585095/ Python Challengeをやろう! pc11.2ch.net/test/read.cgi/tech/1175919288/ Pythonについて(アンチ専用) pc11.2ch.net/test/read.cgi/tech/1203557046/ Pythonに見られるインデントによる制御構造の是非 pc11.2ch.net/test/read.cgi/tech/1169473442/ pythonがこの先生きのこるには pc11.2ch.net/test/read.cgi/tech/1167996371/ Eclipse統合M25【Java/C/PHP/Ruby/Python/Perl】(PyDev) pc11.2ch.net/test/read.cgi/tech/1211505494/ 【Perl,PHP】LLバトルロワイヤル2【Ruby,Python】 pc11.2ch.net/test/read.cgi/tech/1209289408/ デザパタ + Python/Ruby/Smalltalk part2 pc11.2ch.net/test/read.cgi/tech/1175959706/ 2ch検索: [python] find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
- 133 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 02:38:13 ]
- 繰り上がりは分かるけど繰り下がりがわからないんだろな
- 134 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:26:38 ]
- 奇数列を簡単に生成するには
どうすれば良いですか?
- 135 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:29:35 ]
- [i for i in range(100) if i % 2]
- 136 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:37:08 ]
- range(0,100,2)
じゃだめなの?
- 137 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:37:28 ]
- def odd(x=1): x+=2; yield x;
- 138 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:39:31 ]
- range(1,100,2)か。奇数列なら。
- 139 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 09:59:52 ]
- itertools.ifilter(lambda x: x % 2, itertools.count())
- 140 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:01:39 ]
- itertools.islice(itertools.count(1), None, None, 2) とどっちが速いだろ
- 141 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:03:22 ]
- >>138
>>> range(1,100,2)[0:10] [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] >>> range(0,100,2)[0:10] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] 有限個の数列を生成するなら、 関数 => リスト => スライス演算(部分数列=部分リスト) が理解しやすそうd odz.sakura.ne.jp/projecteuler/index.php?Problem%2014 >>> t_collaz(exp) 13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1 コラッツ問題のtracerは、どう書いたら良いでしょうか?
- 142 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:28:31 ]
- def collatz(n)
show n if n.odd? and n > 1 collatz(3n + 1) else if n.even? collatz(n / 2) 再帰で処理を分岐して、引数を数珠繋ぎに取って来て、 各ステップの値を引数に託して、リストを生成する return '→'.join(結果リスト)。書けん…orz
- 143 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:38:08 ]
- >>141
def collatz(n): r=[] while n>1: r.append(n) n=3*n+1 if n%2 else n/2 return r print collatz(13) # => [13, 40, 20, 10, 5, 16, 8, 4, 2]
- 144 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:47:36 ]
- def collaz(n):
if n in odd and n > 1: collaz(3*n+1) yield n elif n in even: collaz(n/2) yield n >>> odd = range(1,100,2)[:10] >>> even = range(0,100,2)[:10] >>> [x for x in collaz(13)] [13] ジェネレーターの使い方がわからない… return と、どう違うねん
- 145 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 10:56:11 ]
- def collatz(n):
while n > 1: yield n % 2 and 3 * n + 1 or n / 2 reduce(lambda x, y: "%s->%d" % (x,y), collatz(13), "").lstrip("->") 汚ぇw
- 146 名前:145 mailto:sage [2008/06/17(火) 10:59:02 ]
- まあreduce()は冗談
普通はjoinだよな常考
- 147 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:07:29 ]
- >>143
とても正しいです… def collatz(n): r=[] while n>1: r.append(n) n = 3*n+1 if n%2 else n/2 yield r >>> collatz(13) <generator object at 0x02637788> >>> [x for x in collatz(13)] [[13, 40, 20, 10, 5, 16, 8, 4, 2]] def collatz(n): r=[] while n>1: r.append(n) n = 3*n+1 if n%2 else n/2 yield r >>> [x for x in collatz(13)] [[13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2], [13, 40, 20, 10, 5, 16, 8, 4, 2]] なんか動作がわからない。なんで完成したリストが13回返されるかな… 計算結果を格納した暫定結果リストを返してくれれば便利そげだけど
- 148 名前:145 mailto:sage [2008/06/17(火) 11:13:04 ]
- アホだ...こうしないと動かないよな
def collatz(n): while n > 1: yield n n = n % 2 and 3 * n + 1 or n / 2 >>147 どんな出力を求めてるのかが、いまいちよくわからない
- 149 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:18:21 ]
- >>147
> なんか動作がわからない。なんで完成したリストが13回返されるかな… yield r の開始位置を比べてみそ。
- 150 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:19:44 ]
- yield list(r)
- 151 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:33:22 ]
- >>148
def collatz(n): yield n n = n % 2 and 3*n + 1 or n/2 >>> collatz(13).next() 13 >>> f = collatz(13) >>> f.next() 13 >>> f.next() Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration >>> [x for x in collatz(13)] [13] >>149 開始位置ってなんじゃらほい サンプルとかヒントきぼん
- 152 名前:151 mailto:sage [2008/06/17(火) 11:36:36 ]
- あほだ…while抜け取るやん…orz
- 153 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 11:47:29 ]
- >>148
def collatz(n): while n > 1: yield n n = n % 2 and 3*n + 1 or n/2 >>> f = collatz(13) >>> f.next() 13 >>> f.next() 40 >>> [x for x in f] [20, 10, 5, 16, 8, 4, 2] return [リスト] っぽいけど操作すると要素が消費されてくのね… 部分リストを、返せば計算過程が [[13],[13,40],[13,40,20],[13,40,20,10],…] >>> t_colltz(13) 13 13 -> 40 13 -> 40 -> 20 13 -> 40 -> 20 -> 10 … 便利?
- 154 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:14:06 ]
- >>> for i, x in enumerate(collatz(13)):
print x[:i+1] [13] [13, 40] [13, 40, 20] [13, 40, 20, 10] [13, 40, 20, 10, 5] [13, 40, 20, 10, 5, 16] [13, 40, 20, 10, 5, 16, 8] [13, 40, 20, 10, 5, 16, 8, 4] [13, 40, 20, 10, 5, 16, 8, 4, 2] StopIteration で最終項 x[:8+1].append(1)を 返すとか可能かな?
- 155 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 12:42:35 ]
- >>153
相変わらずよくわからんが def holder(seq): l = [] for x in seq: l.append(x) yield l[:] こんな感じのを作れば任意のイタレータを追跡できるんじゃね 効率悪そうだけど >>> for x in holder(xrange(10)): ... print x ... [0] [0, 1] [0, 1, 2] [0, 1, 2, 3] [0, 1, 2, 3, 4] [0, 1, 2, 3, 4, 5] [0, 1, 2, 3, 4, 5, 6] [0, 1, 2, 3, 4, 5, 6, 7] [0, 1, 2, 3, 4, 5, 6, 7, 8] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- 156 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 14:11:05 ]
- >>155
codepad.org/ftT9hMVc こんなかんじで f = iter(seq) でパックしつつ 順序が重視される並び(たとえばトランプの手札)を 用意して それに外部から操作する関数 def 人名_gnext(): で 操作したら わかりやすくならないかな…グローバル変数 操作するのと対して変わらないか…
- 157 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 14:39:47 ]
- >>144
ジェネレータのyield自体はreturnとほとんど意味は同じ。 next()が呼ばれるとyieldのところから実行が再開される。 (yieldを書くとnext()は勝手に作成される) ジェネレータの中でループ使ってないと、あまり意味はない。 無限ループからyieldで値を返すと、無限数列が作れる。
- 158 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 15:18:52 ]
- >>144
入門書嫁。
- 159 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 21:43:31 ]
- Pymacs 入れようと思ったんですが、pymacs-servicesが見つかりません
どこですか?
- 160 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:50:40 ]
- pymacs-0.23です
- 161 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:31:56 ]
- Pythonってクールですね
- 162 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:51:12 ]
- Pythonってコールドですね
- 163 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:54:50 ]
- 162だけがコールドですね。
- 164 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:02:53 ]
- 僕のPythonもクールダウンしそうです
- 165 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:10:09 ]
- >>164
単三電池でウォームアップすれば? ところでみんなアッー!温泉行く?
- 166 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:17:48 ]
- python 開発の歴史をビジュアル化したものだそうです
www.vimeo.com/1093745 2000年ごろとか Google 移籍辺りでドーンと来てるね
- 167 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:52:39 ]
- コミットを視覚化してるのか、面白いね
- 168 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:05:05 ]
- 離れてってるのもあるのが微妙
- 169 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 12:07:16 ]
- この効果音あんまり好きじゃない
- 170 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 15:50:16 ]
- >>166
GJ
- 171 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:18:27 ]
- Batteries Inserted
- 172 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:08:23 ]
- 話題に乗るのが2,3日遅くね?
- 173 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:17:45 ]
- 電池挿入済みの哲学ですね。わかります
- 174 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:22:40 ]
- このスレを見ている人はこんなスレも見ています。(ver 0.20)
【batteries】電池☆挿入【inserted】[ガチホモ]
- 175 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:45:06 ]
- 自己解決しました
- 176 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 23:40:43 ]
- 自己挿入しました。
- 177 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:19:24 ]
- ^ ~ ってなんの演算子?
- 178 名前:デフォルトの名無しさん mailto:sage [2008/06/19(木) 01:32:38 ]
- >>177
ttp://www.python.jp/doc/release/lib/bitstring-ops.html
- 179 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 01:42:07 ]
- ttp://d.hatena.ne.jp/odz/20061119/1163971267#20061119fn1
いい加減なんだってさ
- 180 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 02:01:32 ]
- そもそも比較なんていい加減なもんだろ
微妙に方向違うんだから完璧に正しく比較なんてむりだ
- 181 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 02:08:27 ]
- 変数名の面白さを比較するんですね わかります
- 182 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 03:25:22 ]
- >>179
内容は、揚げ足とるだけで終わっているね
- 183 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 03:56:23 ]
- ちょっとききたいんですが。
Python2.5ライセンスのBの3を見ると、 >Python2.5を改変して使う場合は変更点の要約を配布物に含めよ みたいなことがかいてあるけど、たとえばPythonのソースに手を加えて 改造版Python25.dllをつくってアプリに組み込んだとすると、 具体的にどこを改造したのかドキュメント化(もしくはソース添付)しないといけないってこと?
- 184 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:33:29 ]
- うん
- 185 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 09:53:26 ]
- >>179
「はじめてのPython」の著者じゃん(wwww 糞本の作者だけあって、便所の落書きも糞だな(wwwwwwwwww
- 186 名前:デフォルトの名無しさん mailto:age [2008/06/20(金) 10:17:51 ]
- 2.6b1 & 3.0b1 release age
3.0はモジュール名の大改修が行われてて、2.xからの移行が大変そうだ……
- 187 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 11:24:00 ]
- それは、オリジナルの Python25.dll をつかってさえいれば、
なにも書く必要は無いってこと?
- 188 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 11:58:10 ]
- >>186
っ2to3
- 189 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 12:35:10 ]
- >>188
構文はそれでだいたいいけるとして、 ライブラリの再編まで追従してくれるのん? つか初βだし、そろそろ2to3使ってみるかな
- 190 名前:デフォルトの名無しさん [2008/06/20(金) 13:19:10 ]
- 関数(メソッドじゃなくてインデント0のdef)が、頭大文字の名前で定義されてるのを見たんだけど、
これは慣習的にどういう意味を持つの? ついでに、メソッドの場合は?
- 191 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 13:48:34 ]
- 関数名が大文字で始まるのはMicrosoftのAPIなんかがそうだな
- 192 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 13:55:28 ]
- wxPythonなんか使ってる場合もそうだな
- 193 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 15:36:43 ]
- functional
でいろいろ楽ができそうなんだけど 検索してもあんまり情報でてこない ひょっとして3.0で大幅に変わったりするの?
- 194 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 15:59:15 ]
- なんのこと?
- 195 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 16:26:11 ]
- www.ibm.com/developerworks/jp/linux/library/l-prog3/
- 196 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 16:36:19 ]
- 3.0との接点がなさそうだが
- 197 名前:デフォルトの名無しさん mailto:sage [2008/06/20(金) 22:05:53 ]
- for i in range(1, len(ss)):
range()は数列の配列を返すんだからfor文中でssをいじってもループ回数は変わらない・・・ で合ってますか?
- 198 名前:190 mailto:sage [2008/06/21(土) 01:13:28 ]
- >>191,>>192
つまり、関数やメソッドの名前をCamelCaseにするかsnake_caseにするかは、 定着した慣習はなく、書く人の好みと言うこと? 俺が見たCamelCaseの名前で関数を定義してるソースは、 Guido本人が書いた可能性もあるソースなんだけど、本人すらカオスってるって事か。
- 199 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 01:43:18 ]
- >>198
具体的にどのソースのことを言っているの? サンプル数が少ないようならそもそも慣習とは言えないし。
- 200 名前:190 mailto:sage [2008/06/21(土) 02:07:49 ]
- rietveld.googlecode.com/svn/trunk/codereview/engine.py
これっす。 def ParsePatchSet(patchset):とか def FetchBase(base, patch):とか。
- 201 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 02:08:14 ]
- >>198
PEP 8 -- Style Guide for Python Code www.python.org/dev/peps/pep-0008/ PEP 7 -- Style Guide for C Code www.python.org/dev/peps/pep-0007/
- 202 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 06:55:30 ]
- pygletスゲーーーー
SDLいらねーーーー
- 203 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 08:16:19 ]
- pygameの翻訳しろよカス共
neet山もpygame講座の続き書けよ、何年経ってると思ってるんだクソが
- 204 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 08:45:58 ]
- >> 197
range()の引数はすぐに評価されるから、range(1, len(ss))とした時点で 1, 2, ..., len(ss)の配列か、イテレータができちゃう。だからループ内でssを変更しても、forループの対象になってるイテレータは影響を受けないよ。 ssが動的に変わるなら、例えばこうだ。 i = 0 while i<len(ss): i+=1 ...
- 205 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 09:14:50 ]
- 197を見てふと次の2つのコードを試してみた
a = 'aaa' for e in a: a += 'b' a = list('aaa') for e in a: a += 'b' また1つ賢くなった。
- 206 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 09:37:11 ]
- CraftLaunchのように自作ソフトウェアのマクロとしてPythonを組み込みたいのですがどうすればよいのでしょうか?
- 207 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 09:44:30 ]
- >>206
ttp://www.python.jp/doc/release/ext/embedding.html
- 208 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:33:17 ]
- 少々スレ違いかもしれませんが。
C++でpython拡張を作成し、setup.pyでビルドしたのですが。 $ cat setup.py #!/usr/bin/env python # setup.py from distutils.core import setup, Extension module = Extension( 'foo', sources = ['foo.cpp'], include_dirs = ['/usr/local/include/'], library_dirs = ['/usr/local/lib'], libraries = ['boost_python-mt', 'boost_filesystem-mt'] ) setup( name = 'Foo', version = '1.0', ext_modules = [module], ) $ ./setup.py build running build running build_ext building 'Foo' extension creating build creating build/temp.macosx-10.3-fat-2.5 gcc -arch ppc -arch i386 -isysroot /Developer/SDKs/MacOSX10.4u.sdk -fno-strict-aliasing -Wno-long-double -no-cpp-precomp -mno-fused-madd -fno-common -dynamic 以下略
- 209 名前:208 mailto:sage [2008/06/21(土) 13:34:01 ]
- 最後の行を見てもらうとわかる通り、librariesで指定したライブラリを動的リンクしているのです。
これを静的リンクにするにはどのようにすれば良いのでしょう? というか、setup.pyでGCCのオプションを設定するにはどのようにすれば良いのでしょうか?
- 210 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 13:43:05 ]
- >>207
ありがとうございます。もう少し調べるべきでした...
- 211 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 14:41:20 ]
- プロンプトのコマンドを2つ同時に行う方法について聞きたいです
サブプロセスでプロンプトを用いてファイルのコピーを行いたいです。 os.systemを用いて行うには、 1、cd "保存先" 2、copy "コピー元のファイル" "コピー先でのファイル" 以上の二つを宣言しなくてはいけないため、実際に自分が考えた方法では os.system("cd "保存先"") os.system("copy "コピー元のファイル" "コピー先でのファイル"") としてしまうと、別々にプロンプトを開いてしまい機能しません。 何か対処法は無いでしょうか?
- 212 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 14:44:56 ]
- os.system("copy "コピー元のフルパス" "コピー先でのフルパス"")
- 213 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 14:58:37 ]
- >>212ありがとうございます。助かります。
pythonではない質問で申し訳ありません。
- 214 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 17:06:13 ]
- >>211
os.system("cd 保存先") ではカレントディレクトリは変わらないみたいだよ。 os.chdir() を使う必要があると思う。
- 215 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 17:44:37 ]
- >>214
みたいだよ、というか、変わらない。 子プロセスのCWDが変わって終わり。 自プロセスのCWDを変えるには自プロセスが chdir(2) を 実行しないとダメ。
- 216 名前:デフォルトの名無しさん [2008/06/21(土) 21:40:12 ]
- >>> eval("1")
1 >>> eval("print 1") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 1 print 1 ^ SyntaxError: invalid syntax >>> なんで?
- 217 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 21:41:13 ]
- つ exec
- 218 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 21:46:17 ]
- >>211
os.system("cd hoge && copy from to") とかやってもよい &&は、一般的なUnixの/bin/shでもWindowsのcmd.exeでも使えるはず
- 219 名前:デフォルトの名無しさん mailto:sage [2008/06/21(土) 21:51:30 ]
- >>216
入門書嫁 そして式と文の違いを知れ
- 220 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 00:58:42 ]
- >>218
そしてcdに失敗したときに変なところにごみファイルが出来る訳ですね
- 221 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 00:59:55 ]
- >>220
&&の意味分かってる? python の andと同じでショートサーキットで動く 前のコマンド(cd)が成功しないと、次のコピーは実行されないよ
- 222 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 01:25:58 ]
- set と frozenset の違いって何?
list と tuple みたいなもん? そういればフローズンバイナリもよくわからないんだけど、これってなんなの?
- 223 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 02:38:09 ]
- >>222
www.google.co.jp/search?q=python+set+frozenset
- 224 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 02:43:14 ]
- setの使い方というか意義自体よう分からん、java知ってる人には便利らしいんだけど
>>222 setとfrozensetの違いは思ったとおりみたい 不可変だとハッシュに使えるの良いんだよ、ってチュートリアルにあった
- 225 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 06:23:14 ]
- >>> L = [1, 2, 3, 1]
>>> list(set(L)) [1, 2, 3] なんかはたまにする。けどそれ留まり tupleはデータベースなんかだとlistよりしっくり来る気もする
- 226 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 08:02:19 ]
- たまーに値がダミーでキー・添え字が主体な辞書・配列って見ない?
(たぶん書いてる本人もアホっぽいと自覚してるようなコード) そういうのはsetで明示的にシンプルに書ける。 まー値の更新なんかタダみたいなもんだから実行コストは変わんないだろうけど。 SQLでいうSELECT DISTINCTだから用途は多いとおもう。
- 227 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 10:54:34 ]
- htmlからリンクを検索するとき、検索済みのURIをsetに入れておいたりするな。
- 228 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 10:57:58 ]
- >>226
setの方が遅いからじゃない?
- 229 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:17:22 ]
- >>228
そんなのは初耳だ setの実装はハッシュテーブルだからlookupはO(1)のはずだが 勿論重複除去にも使えるが、 if x in foo: みたいなテストを頻繁にやりたいのなら、setがいいよ fooがtupleやlistなら、リニアサーチだからO(n)になる >>227はいい例だな
- 230 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 11:48:40 ]
- >>226
昔はsetがなかったからだろ
- 231 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:03:16 ]
- fooが辞書ならsetと同じですか
- 232 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 12:33:50 ]
- >>231
そうだけど、setでいいところにdict使うのは無駄だろ setならlist, tupleのようなシークエンスやiteratorから直接構築できるしな
- 233 名前:デフォルトの名無しさん mailto:sage [2008/06/22(日) 14:46:23 ]
- 「任意の文字列」を2文字区切りのデータとして
set に切り出すのは無理ぽ? >>> C=[u"中華人民共和国"] >>> def indexing(str): ... S.add(e) ... S.add(e[:2]) ... S.add(e[1:3]) ... S.add(e[2:4]) ... S.add(e[3:5]) ... S.add(e[4:6]) ... S.add(e[5:7]) ... >>> S.clear() >>> >>> for e in C: ... indexing(e) ... >>> for e in S: ... print e, ... 民共 中華人民共和国 共和 華人 和国 人民 中華
|

|