このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。
エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>985 辺りで
前スレ
くだすれPython(超初心者用) その37
http://mevius.5ch.net/test/read.cgi/tech/1521271945/
くだすれPython(超初心者用) その38
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/05/17(木) 11:09:14.54ID:WeqM6vIc506デフォルトの名無しさん
2018/07/07(土) 21:12:18.72ID:cKmJS2is 後者は2文字分余計にパース時間がかかるし、文字列の最後まで比較が完了したかチェックが必要なので、理論的には前者が早いが、
ボトルネックを調べるまではそんなこと気にしても意味がない。
ボトルネックを調べるまではそんなこと気にしても意味がない。
507デフォルトの名無しさん
2018/07/07(土) 21:25:55.58ID:uPjfR+41 早まった最適化はなんちゃら
508デフォルトの名無しさん
2018/07/07(土) 21:37:07.13ID:P+j3/coi509デフォルトの名無しさん
2018/07/08(日) 05:02:05.68ID:HGazO2t1510デフォルトの名無しさん
2018/07/08(日) 09:26:29.76ID:IpE2RaFM511デフォルトの名無しさん
2018/07/08(日) 10:09:18.79ID:s1BUSJNi vim
512デフォルトの名無しさん
2018/07/08(日) 10:51:27.91ID:HGazO2t1 >>510
環境作るのが大変かも。サンキュー
環境作るのが大変かも。サンキュー
513デフォルトの名無しさん
2018/07/08(日) 14:58:29.46ID:hvpTMDL4 >>505
ipythonの%timeitでそういうのを調べられる
ものすごく僅かな差だが、数値のほうが早い
あと変数名が短いほうが早い
%timeit if a==1: pass
52.9 ns ± 0.122 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit if a=="1": pass
56.7 ns ± 0.513 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit if hoge==1: pass
53.9 ns ± 0.365 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit if hoge=="1": pass
57.5 ns ± 0.084 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
ipythonの%timeitでそういうのを調べられる
ものすごく僅かな差だが、数値のほうが早い
あと変数名が短いほうが早い
%timeit if a==1: pass
52.9 ns ± 0.122 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit if a=="1": pass
56.7 ns ± 0.513 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit if hoge==1: pass
53.9 ns ± 0.365 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit if hoge=="1": pass
57.5 ns ± 0.084 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
514デフォルトの名無しさん
2018/07/08(日) 19:12:48.21ID:FXqCe1Jq515デフォルトの名無しさん
2018/07/08(日) 19:47:51.32ID:7IyBQLqQ VBAをそれなりに使えるようになったからPython始めてみたいんだが、やっぱり全然難しい?
VBAの難易度を10としたらPythonはどのくらい?
あと、この関数はVBAで言ったらコレ!みたいな早見表みたいのないよね?
VBAの難易度を10としたらPythonはどのくらい?
あと、この関数はVBAで言ったらコレ!みたいな早見表みたいのないよね?
516デフォルトの名無しさん
2018/07/08(日) 19:49:50.48ID:nzHBwQiZ なにをしたいかによるが
5くらいじゃね?w
ないよ
5くらいじゃね?w
ないよ
517デフォルトの名無しさん
2018/07/08(日) 22:16:58.63ID:9FsG7rKp >>515
既にVBAを使えるなら簡単だよ
くどい型宣言、配列のみの貧弱なデータ構造といった
VBAの使いづらい点が、Pythonでは全て解決されている
ただしWebやネットワークの世界には手を出すなよ
Python以外にも必要な知識が爆発的に増えていくら時間があっても足りない
Pythonはローカルのテキストデータをいじくる用途で輝く言語だ
既にVBAを使えるなら簡単だよ
くどい型宣言、配列のみの貧弱なデータ構造といった
VBAの使いづらい点が、Pythonでは全て解決されている
ただしWebやネットワークの世界には手を出すなよ
Python以外にも必要な知識が爆発的に増えていくら時間があっても足りない
Pythonはローカルのテキストデータをいじくる用途で輝く言語だ
518デフォルトの名無しさん
2018/07/08(日) 22:19:33.46ID:R+BMdkT4519デフォルトの名無しさん
2018/07/08(日) 23:51:01.54ID:7IyBQLqQ520デフォルトの名無しさん
2018/07/09(月) 02:17:48.93ID:LaDaXFYH 記法について教えてください。
https://qiita.com/pumbaacave/items/942f86269b2c56313c15
上記のサイトのマルチプロセス実行関数を定義している箇所に下記のように記述があるのですが、
なぜカンマ以降空欄なのでしょうか?
process_pool = Pool(processes=n, )
https://qiita.com/pumbaacave/items/942f86269b2c56313c15
上記のサイトのマルチプロセス実行関数を定義している箇所に下記のように記述があるのですが、
なぜカンマ以降空欄なのでしょうか?
process_pool = Pool(processes=n, )
521デフォルトの名無しさん
2018/07/09(月) 04:04:31.40ID:lNBlYhG9 そのカンマは有っても無くても変わらんから消し忘れだろう
それで納得行かないならコメント欄で本人に聞いてこい
ここは著者の気持ち推測スレじゃないからな
それで納得行かないならコメント欄で本人に聞いてこい
ここは著者の気持ち推測スレじゃないからな
522デフォルトの名無しさん
2018/07/09(月) 06:40:13.77ID:TvZsnLJ0 毎週得意先から10くらいのPDFが送られてくるのですが。
PDFを全て選択→コピー→貼り付け→ボタン押してVBA発動(社内で見たい数字に変換)→次のPDFを開く…手作業で繰り返しています。
これをPDF自動で開かせてコピーペーストしてVBAを動かす、、までPythonでやりたいのですが、可能でしょうか?
PDFを全て選択→コピー→貼り付け→ボタン押してVBA発動(社内で見たい数字に変換)→次のPDFを開く…手作業で繰り返しています。
これをPDF自動で開かせてコピーペーストしてVBAを動かす、、までPythonでやりたいのですが、可能でしょうか?
523デフォルトの名無しさん
2018/07/09(月) 06:55:58.69ID:wOPKveTX524デフォルトの名無しさん
2018/07/09(月) 09:02:54.85ID:rKnQV5/G 課題解決において、本当に優れたソリューションは有効性や実現性だけでなく応用性・永続性・再現性を備えている
・PDFのフォーマットが変わったらどうするのか?
・自分が今の仕事から離れたらどうするのか?
・他の業務にも広く展開できないか?
Pythonで他の誰にも分からないもの作るより、522が率先してRPA入れて展開したほうが遥かに522は評価される
そういう思考と行動ができればCIOにだってなれるぞ
・PDFのフォーマットが変わったらどうするのか?
・自分が今の仕事から離れたらどうするのか?
・他の業務にも広く展開できないか?
Pythonで他の誰にも分からないもの作るより、522が率先してRPA入れて展開したほうが遥かに522は評価される
そういう思考と行動ができればCIOにだってなれるぞ
525デフォルトの名無しさん
2018/07/09(月) 09:03:41.22ID:C9JH0M1I 普通ににPythonのRPAフレームワークあるが…
526デフォルトの名無しさん
2018/07/09(月) 09:27:08.40ID:SXUnnQWd >>522
可能だと思う
可能だと思う
527遊園地 ◆ExGQrDul2E
2018/07/09(月) 10:49:26.70ID:H6u5Fx+k うんこ漏らしながら、、答えると
PDFMiner.six
使え。
PDFMiner.six
使え。
528デフォルトの名無しさん
2018/07/09(月) 11:17:28.05ID:H6u5Fx+k すっ、すいません。
先程まで咥えてたボっぼくのおちんぽっぽ知りませんか?
トイレに行ったら、どこに行ったか分かりません。
コンピューターの未来予測で解決して下さいwww
https://eurekalert.org/multimedia/pub/173001.php
先程まで咥えてたボっぼくのおちんぽっぽ知りませんか?
トイレに行ったら、どこに行ったか分かりません。
コンピューターの未来予測で解決して下さいwww
https://eurekalert.org/multimedia/pub/173001.php
529522
2018/07/09(月) 12:44:00.66ID:pU5gW32k 皆さん、回答ありがとうございます。
もう少し自分の方で調べてから、再度質問させて頂きます。
もう少し自分の方で調べてから、再度質問させて頂きます。
530デフォルトの名無しさん
2018/07/09(月) 16:14:02.89ID:OMEWQnbN これヤバシング
https://goo.gl/uAcy7u
https://goo.gl/uAcy7u
531デフォルトの名無しさん
2018/07/09(月) 19:05:37.08ID:H6u5Fx+k532デフォルトの名無しさん
2018/07/10(火) 23:21:34.41ID:pmSBRWqU T or通して踏めばおk?
533デフォルトの名無しさん
2018/07/10(火) 23:25:58.83ID:czFq4uQ7 特定しました
534デフォルトの名無しさん
2018/07/13(金) 09:49:36.96ID:beR71Flm 今更だけど>>447に自己レス
os.renameだと移動先がない場合、FileNotFoundErrorになる
os.renamesだと移動先がない場合、自動生成してくれる
Pythonの標準ライブラリはsのある・なしで動作が変わるものがあるから気をつけないといかんね
os.renameだと移動先がない場合、FileNotFoundErrorになる
os.renamesだと移動先がない場合、自動生成してくれる
Pythonの標準ライブラリはsのある・なしで動作が変わるものがあるから気をつけないといかんね
535デフォルトの名無しさん
2018/07/14(土) 08:42:52.91ID:/U+5P3P4 >>534
これは良いレスの見本
これは良いレスの見本
536デフォルトの名無しさん
2018/07/14(土) 11:36:12.84ID:v4Gtt50J mkdir
mkdirs
もありまっせ
mkdirs
もありまっせ
537デフォルトの名無しさん
2018/07/14(土) 12:46:59.88ID:zjgvls6Z Pythonのファイル操作関連機能は
複数ライブラリに散らばってたり重複があったりと
カオスなことになってて非常に使いづらい
一度自分用の早見表を作ったんだけど紛失してしまった
3で互換性なくなる時にpathlibあたりに一元化すれば良かったのに
複数ライブラリに散らばってたり重複があったりと
カオスなことになってて非常に使いづらい
一度自分用の早見表を作ったんだけど紛失してしまった
3で互換性なくなる時にpathlibあたりに一元化すれば良かったのに
538デフォルトの名無しさん
2018/07/14(土) 15:06:03.89ID:xrW9R8Gf 複雑だが頻繁に使うなら自分専用にラップしただけのライブラリでも作ればいい
539デフォルトの名無しさん
2018/07/14(土) 17:57:55.26ID:+qTTsOaT 自分専用にラップといえば、
re.searchはマッチしたものを直接返せないと思って関数作ってたけど
↓みたいににすれば直接返せると最近知った
txt="123456"
mat=re.search("12(.*?)56",txt).group(1)
マッチオブジェクトを返すってなんだよ使いにくいなぁと思ってたけど
使い方を知ったらなかなか便利だと感心した
re.searchはマッチしたものを直接返せないと思って関数作ってたけど
↓みたいににすれば直接返せると最近知った
txt="123456"
mat=re.search("12(.*?)56",txt).group(1)
マッチオブジェクトを返すってなんだよ使いにくいなぁと思ってたけど
使い方を知ったらなかなか便利だと感心した
540デフォルトの名無しさん
2018/07/14(土) 18:08:46.03ID:bBAel3cq そういえばGuidoがBDFL辞めるらしいな
PEP572関係でdisられたのが原因らしいが、ML追っかけてないからよく分からん
まあ、辞めたところで何がどうなることもないと思うがね
PEP572関係でdisられたのが原因らしいが、ML追っかけてないからよく分からん
まあ、辞めたところで何がどうなることもないと思うがね
541デフォルトの名無しさん
2018/07/14(土) 19:10:27.49ID:p9pW3bxe542デフォルトの名無しさん
2018/07/14(土) 19:25:32.29ID:lqSDAnIa543デフォルトの名無しさん
2018/07/14(土) 19:27:46.25ID:wb5ySS54 >>541
俺もずっとこの使い方してたけどどこがまずいのか教えて
俺もずっとこの使い方してたけどどこがまずいのか教えて
544デフォルトの名無しさん
2018/07/14(土) 19:39:05.18ID:pZ9+lrqM545デフォルトの名無しさん
2018/07/14(土) 22:22:07.13ID:zjgvls6Z >>543
たぶん以下のように正規表現パターンをコンパイルして使えってことだと思う
同じパターンで繰り返し何度も検索する時に速度的に有利・・・らしいが
これを使わないのは正しくない、というのは言い過ぎ
txt="123456"
r = re.compile("12(.*?)56")
mat = r.search(txt).group(1)
たぶん以下のように正規表現パターンをコンパイルして使えってことだと思う
同じパターンで繰り返し何度も検索する時に速度的に有利・・・らしいが
これを使わないのは正しくない、というのは言い過ぎ
txt="123456"
r = re.compile("12(.*?)56")
mat = r.search(txt).group(1)
546デフォルトの名無しさん
2018/07/14(土) 22:41:15.08ID:9E/kCsBf547デフォルトの名無しさん
2018/07/14(土) 22:50:33.19ID:wb5ySS54548デフォルトの名無しさん
2018/07/14(土) 22:54:34.71ID:iQdsrGNN >>546
例外処理したらええんちゃうの
例外処理したらええんちゃうの
549デフォルトの名無しさん
2018/07/14(土) 23:25:04.26ID:RwYVNvZ5550デフォルトの名無しさん
2018/07/14(土) 23:27:08.84ID:/GhuOfpQ >>548
ミスマッチの結果、二次的に発生した例外を捕まえてエラーハンドリングするのは意図が伝わりにくいしピタゴラスイッチかよって気がする
ミスマッチの結果、二次的に発生した例外を捕まえてエラーハンドリングするのは意図が伝わりにくいしピタゴラスイッチかよって気がする
551デフォルトの名無しさん
2018/07/14(土) 23:36:28.34ID:pZ9+lrqM そのままsearchして(この時点で例外とはならない)、
try-catchでgroup(1)すればいいのでは?
try-catchでgroup(1)すればいいのでは?
552デフォルトの名無しさん
2018/07/15(日) 01:12:03.97ID:WCfEKFtx 製品のプルリクに入ってたら直せって言うけど
個人のコードだったらどうでもいいわ
個人のコードだったらどうでもいいわ
553デフォルトの名無しさん
2018/07/15(日) 02:24:18.06ID:oGr67yTf554デフォルトの名無しさん
2018/07/15(日) 08:37:24.40ID:MaWYhEE+ webスクレイピングは、サイトの仕様変更である日突然マッチしなくなる可能性があるけど
それを想定して例外処理を作っとくのは面倒だし、作り忘れが発生する可能性も高いから
あえて>539のやり方を使って、エラーで止まるようにしたほうがわかりやすいかもしれん
それを想定して例外処理を作っとくのは面倒だし、作り忘れが発生する可能性も高いから
あえて>539のやり方を使って、エラーで止まるようにしたほうがわかりやすいかもしれん
555デフォルトの名無しさん
2018/07/15(日) 08:50:29.23ID:BpM21w6A 仕様変更なのか
一時的な障害なのか
たまたまエラーになるデータだったのか
他の理由なのか
そういうの分析しないといけないから
リクエスト、レスポンスのダンプと処理のログは残したほうがいいよ
一時的な障害なのか
たまたまエラーになるデータだったのか
他の理由なのか
そういうの分析しないといけないから
リクエスト、レスポンスのダンプと処理のログは残したほうがいいよ
556デフォルトの名無しさん
2018/07/15(日) 09:47:46.97ID:507A2oF2 教えてって書いてあるから横から思うところを言っただけだが
>>549みたいなこと言われるんだったら二度と教えねえわ
>>549みたいなこと言われるんだったら二度と教えねえわ
557デフォルトの名無しさん
2018/07/15(日) 10:54:17.93ID:irOcVYp9558デフォルトの名無しさん
2018/07/15(日) 14:02:20.42ID:lCAlUWZR もっとちゃんと謝って
559デフォルトの名無しさん
2018/07/15(日) 14:14:15.96ID:LnWCwVdC560デフォルトの名無しさん
2018/07/15(日) 14:49:01.29ID:SyiaUNYr Optional type hintつかえや
561デフォルトの名無しさん
2018/07/15(日) 14:52:56.10ID:ULhjy0aZ >>559
間違っている箇所(戻り値チェック)を直せば、「間違った方法ではない」のは当たり前ですけどね…
間違っている箇所(戻り値チェック)を直せば、「間違った方法ではない」のは当たり前ですけどね…
562デフォルトの名無しさん
2018/07/15(日) 15:59:51.01ID:mOOR+1Qr def func():
a,b=・・・
return a,b
の戻り値aだけが欲しい時にa=func()[0]などとせずa=func()だけで可能にする方法ある?
a,b=・・・
return a,b
の戻り値aだけが欲しい時にa=func()[0]などとせずa=func()だけで可能にする方法ある?
563デフォルトの名無しさん
2018/07/15(日) 16:00:25.25ID:wK+4T5k7 (´・ω・`) あやまって?
564デフォルトの名無しさん
2018/07/15(日) 16:01:15.26ID:wK+4T5k7565デフォルトの名無しさん
2018/07/15(日) 16:10:39.17ID:GnA/ld69 この手の質問たまに見るけどなぜそう言うことをしたいのかいつもわからん
566デフォルトの名無しさん
2018/07/15(日) 16:13:07.59ID:LnWCwVdC >>562
デコればいいんじゃない?
デコればいいんじゃない?
567デフォルトの名無しさん
2018/07/15(日) 16:37:39.67ID:+eT7t0LR568デフォルトの名無しさん
2018/07/15(日) 16:58:39.39ID:JvvU9qo5 >>565
matlabだとそれができるから、matlabから来た人は重要な戻り値を先頭にしてたまにだけ欲しい戻り値を後ろに書きたくなる
pythonでそれ同じようにすると、a,_=func()とかa=func()[0]とか書かなきゃならないのを忘れてどこかでエラー出ることが頻繁に発生する
matlabだとそれができるから、matlabから来た人は重要な戻り値を先頭にしてたまにだけ欲しい戻り値を後ろに書きたくなる
pythonでそれ同じようにすると、a,_=func()とかa=func()[0]とか書かなきゃならないのを忘れてどこかでエラー出ることが頻繁に発生する
569デフォルトの名無しさん
2018/07/15(日) 17:01:56.80ID:0QdlwMDB570デフォルトの名無しさん
2018/07/15(日) 17:02:41.94ID:0QdlwMDB >>568
へえ!
へえ!
571デフォルトの名無しさん
2018/07/15(日) 17:21:18.42ID:z9dis41F >>539
None で Exception 出ないか?
None で Exception 出ないか?
572デフォルトの名無しさん
2018/07/15(日) 17:27:59.50ID:z9dis41F yeald a, b
573デフォルトの名無しさん
2018/07/15(日) 17:29:17.38ID:z9dis41F ああ違うか
yeald a
yeald b
ydald c
...
yeald a
yeald b
ydald c
...
574デフォルトの名無しさん
2018/07/15(日) 17:37:09.40ID:GnA/ld69575デフォルトの名無しさん
2018/07/15(日) 17:38:06.11ID:GnA/ld69576デフォルトの名無しさん
2018/07/15(日) 17:38:56.90ID:lEsxGLKr >>545
txt="123456"
r1 = re.compile("12(.*?)56")
mat = r.search(txt).group(1)
と
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)
結果は同じになるけど、
オブジェクトにするかしないかで、細かい違いはどういうところで出てくるの?
txt="123456"
r1 = re.compile("12(.*?)56")
mat = r.search(txt).group(1)
と
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)
結果は同じになるけど、
オブジェクトにするかしないかで、細かい違いはどういうところで出てくるの?
577576
2018/07/15(日) 17:43:15.60ID:lEsxGLKr 最初の方(r1)間違った
txt="123456"
r1 = re.compile("12(.*?)56")
mat = r1.search(txt).group(1)
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)
txt="123456"
r1 = re.compile("12(.*?)56")
mat = r1.search(txt).group(1)
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)
578デフォルトの名無しさん
2018/07/15(日) 17:53:05.48ID:4uGjQYdk 知ってるけど義務じゃないし教えない
579デフォルトの名無しさん
2018/07/15(日) 18:03:01.01ID:raVPXb0K580デフォルトの名無しさん
2018/07/15(日) 18:19:16.85ID:4uGjQYdk581デフォルトの名無しさん
2018/07/15(日) 18:23:05.65ID:chucpUaP >>580
答えないんだから書き込まなくていいって。ROMに徹してなよ。
答えないんだから書き込まなくていいって。ROMに徹してなよ。
582デフォルトの名無しさん
2018/07/15(日) 18:25:29.22ID:4uGjQYdk >>545に答え書いてるだろうが日本語読めないのか?
583デフォルトの名無しさん
2018/07/15(日) 18:27:40.61ID:chucpUaP584デフォルトの名無しさん
2018/07/15(日) 18:28:14.27ID:IXGJsf34 >>581
今日限りでこんな所ROMすらしなくなるから安心しろ
今日限りでこんな所ROMすらしなくなるから安心しろ
585デフォルトの名無しさん
2018/07/15(日) 18:29:36.91ID:wK+4T5k7 煽られて反応するのは方向性が違うだけで、沸点の低さについては同レベル
586デフォルトの名無しさん
2018/07/15(日) 18:30:02.56ID:chucpUaP >>583
本当は答えたくて仕方がないんだね。
本当は答えたくて仕方がないんだね。
587デフォルトの名無しさん
2018/07/15(日) 18:30:50.94ID:+eT7t0LR めでたい。良いことありそう
588576
2018/07/15(日) 20:52:52.55ID:lEsxGLKr589デフォルトの名無しさん
2018/07/15(日) 21:49:35.18ID:cDGgo13V >>588
コンパイルて言いたいだけやな。オブジェクトの理解もあやふやそうだ。
どっちも正規表現オブジェクトにコンパイルされてるよ。明示的か暗黙かの違いはあるけど。
↓が詳しいよ。
https://docs.python.org/ja/3.7/howto/regex.html
コンパイルて言いたいだけやな。オブジェクトの理解もあやふやそうだ。
どっちも正規表現オブジェクトにコンパイルされてるよ。明示的か暗黙かの違いはあるけど。
↓が詳しいよ。
https://docs.python.org/ja/3.7/howto/regex.html
590デフォルトの名無しさん
2018/07/15(日) 21:58:34.41ID:+eT7t0LR 「今度の大型案件はコンパイルで〜」
「お宅もですか?実は弊社もコンパイルを〜」
「最近はコンパイルがないと始まりませんな〜」
「今度入った新人、若いくせにコンパイルも知らないと〜」
「お宅もですか?実は弊社もコンパイルを〜」
「最近はコンパイルがないと始まりませんな〜」
「今度入った新人、若いくせにコンパイルも知らないと〜」
591576
2018/07/15(日) 22:43:17.00ID:lEsxGLKr >>589
> どっちも正規表現オブジェクトにコンパイルされてるよ。明示的か暗黙かの違いはあるけど。
つまり、
r1はJavaScriptでいうところのRegExp() コンストラクタ(var r1 = new RegExp("12(.*?)56");)、
r2は同じく正規表現リテラル(var r2 = /"12(.*?)56"/;)と同じ、という考え方でいいのかな。
たしかにどちらもコンパイルと言ってた。
ということは、件のコードに効率には大きな違いはない、
ひいてはどちらを使っても構わない、
ということでいいの?
JavaScriptではリテラルのほうが速いとされているんだけど。
> どっちも正規表現オブジェクトにコンパイルされてるよ。明示的か暗黙かの違いはあるけど。
つまり、
r1はJavaScriptでいうところのRegExp() コンストラクタ(var r1 = new RegExp("12(.*?)56");)、
r2は同じく正規表現リテラル(var r2 = /"12(.*?)56"/;)と同じ、という考え方でいいのかな。
たしかにどちらもコンパイルと言ってた。
ということは、件のコードに効率には大きな違いはない、
ひいてはどちらを使っても構わない、
ということでいいの?
JavaScriptではリテラルのほうが速いとされているんだけど。
592576
2018/07/15(日) 22:53:44.08ID:lEsxGLKr 失礼、コピペで余計なクォートを入れちゃった。
正規表現リテラルは、var r2 = /12(.*?)56/; ですね。
正規表現リテラルは、var r2 = /12(.*?)56/; ですね。
593デフォルトの名無しさん
2018/07/15(日) 23:39:12.09ID:cDGgo13V r1もr2もいっしょ。
r2は内部でr1と同じ事やってメソッド呼んでるだけ。
ソース見たら一目瞭然。
https://github.com/python/cpython/blob/master/Lib/re.py
jsはリテラルの場合はプログラムロード時にコンパイルされて、
コンストラクタ使った時は実行時にコンパイルされるからリテラルの方が速い。
r2は内部でr1と同じ事やってメソッド呼んでるだけ。
ソース見たら一目瞭然。
https://github.com/python/cpython/blob/master/Lib/re.py
jsはリテラルの場合はプログラムロード時にコンパイルされて、
コンストラクタ使った時は実行時にコンパイルされるからリテラルの方が速い。
594デフォルトの名無しさん
2018/07/15(日) 23:46:56.69ID:cDGgo13V r1とr2って言っちゃダメだな
R1とR2ってことね
-----R1-----
r1 = re.compile("12(.*?)56")
mat = r1.search(txt).group(1)
-----R2-----
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)
R1とR2ってことね
-----R1-----
r1 = re.compile("12(.*?)56")
mat = r1.search(txt).group(1)
-----R2-----
r2 = "12(.*?)56"
mat = re.search(r2, txt).group(1)
595デフォルトの名無しさん
2018/07/16(月) 06:30:22.35ID:XBIjWYki596デフォルトの名無しさん
2018/07/16(月) 11:41:43.52ID:80hpbb9v 正規表現リテラルは、実行する前に決まっている場合
一方、オブジェクトは、実行時に決まる場合にも使える
一方、オブジェクトは、実行時に決まる場合にも使える
597596
2018/07/16(月) 11:45:24.46ID:80hpbb9v Ruby のコーディング規則では、
正規表現リテラルは、Perl との互換性を保つ表記で、わかりにくいから、
常にオブジェクトの方を使え、って書いてあるものもある
正規表現リテラルは、Perl との互換性を保つ表記で、わかりにくいから、
常にオブジェクトの方を使え、って書いてあるものもある
598デフォルトの名無しさん
2018/07/16(月) 11:54:01.92ID:rAvhQng0 ポンコツrubyの思いつきコーディング規則とやらに合わせてのjavascriptで速くなることが分かりきってるリテラル使うなってか?w
頭湯だってんじゃねーか?wwww
頭湯だってんじゃねーか?wwww
599デフォルトの名無しさん
2018/07/16(月) 11:57:38.49ID:KKQqxuup rubyはどうでもいい
600デフォルトの名無しさん
2018/07/16(月) 16:13:11.31ID:Od4s/iux re.compile した結果をどっかに pickle して保存とかできますか?
601デフォルトの名無しさん
2018/07/16(月) 17:41:56.21ID:fgL4HgKC 気にするな
Pythonなんか元々ビチクソ遅いんだからそんなこといちいち気にしてたら禿げるぞ
Pythonなんか元々ビチクソ遅いんだからそんなこといちいち気にしてたら禿げるぞ
602576
2018/07/16(月) 23:23:44.54ID:vArnB9ir >>593-597
search()関数は、内部的にはcompile()関数+search()メソッドなんだねぇ。
だから、同じ正規表現パターンを複数回用いる場合は、
R1(わざわざ再定義ありがとう)のような
正規表現パターンオブジェクト+search()メソッドにすれば、
その度にコンパイルする無駄がないというのが理解できたよ。
そして、R2の使い方は見た目はわかりやすいけど、
プログラム動作的には(特に複数回行う場合)
あまり意味がないということみたいだね。
勉強になりました。
レスしてくれた方々、どうもありがとう。
search()関数は、内部的にはcompile()関数+search()メソッドなんだねぇ。
だから、同じ正規表現パターンを複数回用いる場合は、
R1(わざわざ再定義ありがとう)のような
正規表現パターンオブジェクト+search()メソッドにすれば、
その度にコンパイルする無駄がないというのが理解できたよ。
そして、R2の使い方は見た目はわかりやすいけど、
プログラム動作的には(特に複数回行う場合)
あまり意味がないということみたいだね。
勉強になりました。
レスしてくれた方々、どうもありがとう。
603デフォルトの名無しさん
2018/07/17(火) 14:45:03.69ID:+kxKOOfA どうみても R1 の方が判りやすい
604デフォルトの名無しさん
2018/07/17(火) 15:03:34.17ID:BuEnlPhn D2
605デフォルトの名無しさん
2018/07/17(火) 16:06:12.89ID:37glYQle >>603
Rは遅い。
Rは遅い。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★7 [七波羅探題★]
- 防衛省、中国を完全論破www 「事前通告があったのは海自であって空自ではない」 高市早苗勝利 [175344491]
- 三洋電機がこの世から消えるなんて思いもしなかった
- できるだけ多く知ってる仏教の宗教おしえて
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 小学受験に失敗したら人生終わる?
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★4 [597533159]
