1 名前:デフォルトの名無しさん [2014/01/02(木) 12:52:08.79 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その20 toro.2ch.net/test/read.cgi/tech/1387082467/ 関連スレ Pythonのお勉強 Part49 toro.2ch.net/test/read.cgi/tech/1387528488/ ◆関連リンク Python の Home Page ttp://www.python.org/ ◆長いコードはこういうところにはってください ttp://ideone.com/ ttp://codepad.org/ ttp://pastebin.com/ dpaste.com/ ◆まとめwiki ttp://python.rdy.jp/
191 名前:デフォルトの名無しさん mailto:sage [2014/01/21(火) 16:44:36.99 ] >>189 置換したいのかな? s = "ab2c45d67e8fg" print(re.sub(r'\d+', '', s))
192 名前:181 mailto:sage [2014/01/21(火) 16:49:41.71 ] >>191 あ、そうか 俺バカだなぁ str = str[0:m.start()-1] + str[result.end()+1:] とかめんどくさいことしてた ま、これでも出来ることは出来るんだけどね どっちが処理速度が早いかは分からんけど なんかPython触ってから他の言語で出来ることを複雑に考えすぎてるのか、混乱してるっぽい とりあえず教えてくれてありがと
193 名前:デフォルトの名無しさん mailto:sage [2014/01/21(火) 17:09:45.45 ] >>188 たぶんfindで見つからないときNoneが返るんでしょ? a = s.find("a") if a is None: print 'エラーです' else: l = a["href"]
194 名前:デフォルトの名無しさん mailto:sage [2014/01/21(火) 21:06:23.68 ] >>193 あー思い通りにいきました。ありがとうございます。
195 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 02:17:05.01 ] >>183 指摘thx 今度からtypoなくす為に、コピペにします >>185 順序付辞書なら、collections モジュールに OrderedDict もあるよ。こちらは挿入順。
196 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 17:49:26.29 ] HELPです 関数内でループが適用されません 以下のスクリプトを行うと、urlやjavascriptがそれぞれ一つずつしか抽出されません インデントも確認してみたんですが... うpローダーにスクリプトをあげました www.dotup.org/uploda/www.dotup.org4819644.py.html 関数にせずに、それぞれ素で適用させた場合は上手くいくのですが、 そのそれぞれの処理を関数に書いて適用させた際には、結果が一つしか出てきません スコープなのかなぁ? Pythonは良く分かりません
197 名前: 忍法帖【Lv=3,xxxP】(2+0:5) [2014/01/22(水) 17:58:01.18 ] 直リン貼れなかったので、ちょっと自分の忍法帖確認してみます すみません
198 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 18:28:22.22 ] >>196-197 再現可能なサンプルデータぐらい用意したら? URLじゃなくてそのまま食わせられるHTMLね あと、ソース貼るならpastebin.com、codepad.org、ideone.comとかにしてくれ
199 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 18:31:28.15 ] >>196 チラっと見た感じだけど、正規表現パターンが原因でしょ 最初の pattern_url はいいが、残り2つは前後に .+ .* が付いてるから 1回で文字列全体にマッチして終了してしまうよ
200 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 18:33:26.13 ] 他の言語ができるならテストを書きなされ
201 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 18:43:02.73 ] 変に複雑な事してるけど、こんな感じでいいと思うけどなあ results = [] for m in re.finditer(r'''\bhref=['"]?([^"<>\s]+)''', html, flags = re.I): results.append(m.group(1)) if uniq: results = list(set(results))
202 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 20:57:54.65 ] >>196 tagRemoveのre.subを繰り返し呼ぶようなコードだけど、 一度で全て置換されるのでループは不要。 re.subn使えば置換個数を確認できます。
203 名前:デフォルトの名無しさん mailto:sage [2014/01/22(水) 21:47:35.69 ] >>196 です 皆さん、色々とアドバイスありがとうございました
204 名前:デフォルトの名無しさん [2014/01/23(木) 00:17:18.66 ] 直リンク禁止されてるのでscheme部を省いてリンクします コード : pastebin.com/7YqtR23Q 空白行が除去できないのですが、これは自分の正規表現の書き方が悪いからでしょうか? それとも、pythonのコーディングが間違っているからでしょうか? 自分の結果では最初の20行は空白行が続き、21行目に" / "と言う文字が出てきます その後はまた暫く空白行が続きます これらの空白行を全部取り除きたいのですが... もしかしたらこのような面倒くさいやり方ではなく、関数などの利用で一気に除去できるかもしれませんが 検索しても見当たりませんでした アドバイス頂けないでしょうか?
205 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 00:36:54.08 ] Pythonの実行速度、たとえばfor文で何百万回も ループを回すような処理が遅くて困っています。 リスト内包表記とかmap関数とかjoin関数とかで 極力高速化しているものの、Pure Pythonでは 頭打ちの状態です。 CPythonやCython、PyPyなど、実装側で高速化する 方法を検討していますが、これといった決め手に 欠けています。 主な用途はNumPyを併用した科学計算や データの整形など、数値計算寄りです。 サーバアプリのような規模の大きいものではなく、 単一のスクリプトファイルを必要な時に叩くといった やり方がほとんどです。 sys、os、subprocess、numpyは必須。 できればscipyやmultiprocessingも使いたいです。 Mac/Win/Linuxいずれの環境でも実行できる必要が あります。 そして互換性や可読性の都合上、各実装に特化した コーディングは極力避けたいです。 各実装の得手不得手など、ざっくりとした内容で 結構ですのでご意見いただけませんでしょうか?
206 名前:デフォルトの名無しさん [2014/01/23(木) 01:14:19.47 ] そこまでやるなら素直にRubyへ移行したほうが良いです。 そのままゴリ押ししても良いことないです。
207 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 01:16:49.69 ] >>204 正規表現を勉強する 検索ではなく公式のチュートリアルと標準ライブラリにざっと目を通す 2 タブをやめる
208 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 01:51:16.12 ] >>205 cで書け
209 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 02:17:47.09 ] >>205 Cythonで十分だろう なにが不満なんだ
210 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 02:39:36.29 ] >>205 つanaconda accelerate
211 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 03:12:36.80 ] >>205 PyPyは確かにCPythonより計算とか速いこともあるけど一長一短でそれだけな感が Cythonは型指定でC/C++に迫れるけどそもそもCに変換してコンパイルしてるので C/C++で書いたらいいじゃない感、PurePythonコーディングでなければ互換性がないのも… numpy前提なら小手先のマルチプロセスより pyopenclでも使ったほうが次元の違うレベルになるんじゃないかな
212 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 04:28:10.51 ] >>204 ここで質問したのはもう終わりにするの? Regular Expression(正規表現) Part12 toro.2ch.net/test/read.cgi/tech/1387257592/234
213 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 06:54:13.07 ] >>204 空白行を取り除く print("\n".join(x for x in html.splitlines() if x))
214 名前:デフォルトの名無しさん mailto:sage [2014/01/23(木) 06:56:06.28 ] PyPyは注意書きにあるようにPurePythonじゃないとエミュレーションで遅くなるし 俺は速度が必要な時はCython/Cだね Cで書いてCythonでGILを開放しつつ糊付け あとはスレッド作って回す