[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 01/23 08:36 / Filesize : 59 KB / Number-of Response : 215
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPython(超初心者用) その21



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を開放しつつ糊付け
あとはスレッド作って回す






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<59KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef