[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 02/24 01:18 / Filesize : 206 KB / Number-of Response : 962
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Pythonのお勉強 Part30



1 名前:デフォルトの名無しさん mailto:sage [2008/11/16(日) 19:09:55 ]
Pythonオフィシャルサイト
www.python.org/
日本Pythonユーザ会
www.python.jp/Zope/
まとめWiki
python.rdy.jp/
関連スレ
find.2ch.net/?BBS=ALL&TYPE=TITLE&STR=python
前スレ
pc11.2ch.net/test/read.cgi/tech/1223543412/

830 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:09:27 ]
>>828
2.5でもmap使えばいいだろ

831 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 15:35:12 ]
愚直にitertools.isliceで。

import itertools

def pair(iterable, count):
    it = iter(iterable)
    while 1:
        a = tuple(itertools.islice(it, count))
        if not a:
            break
        yield a

print list(pair(range(10), 3))


832 名前:デフォルトの名無しさん mailto:sage [2008/12/28(日) 16:46:42 ]
俺も考えてみたけど、>>824のシンプルさには敵わないな

>>> import itertools
>>> make_taker = lambda xs, n: lambda: tuple(itertools.islice(xs, n))
>>> iter_take = lambda xs, n: iter(make_taker(iter(xs), n), ())
>>> list(iter_take(range(10), 3))
[(0, 1, 2), (3, 4, 5), (6, 7, 8), (9,)]

833 名前:デフォルトの名無しさん [2008/12/28(日) 19:14:36 ]
see also itertoolsのドキュメント内 izip と 例 の grouper関数

834 名前:デフォルトの名無しさん [2008/12/29(月) 00:37:20 ]
>>830
mapだとイテレータや巨大なリスト等を扱うとき困る。itertools.imapだと末尾の扱いが若干異なる。
3.0 のbuiltinのmap はitertools.imap相当なので、mapで長さの異なるリストを扱っている場合は3.0への移植の際に注意が必要。
例えば、下のコードは 2.x と 3.0 で結果が異なる。
>>> list(map(lambda *xs:xs, *[iter(range(10))]*3))


835 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 01:42:21 ]
>>832
nが大きな数になる時を考慮するなら、こっち(islice)の方が効率良さそう。


元質問からは少し外れるけど、file-likeオブジェクトや文字列の場合。

try:
from io import StringIO
except ImportError:
from StringIO import StringIO

def split_nbyte(stream, n):
return iter(lambda :stream.read(n),"")

def split_nbyte_str(s, n):
return group_nbyte(StringIO(s), n)


836 名前:デフォルトの名無しさん [2008/12/29(月) 08:17:15 ]

ie = win32com.client.Dispatch('InternetExplorer.Application')
ie.Navigate('www.google.co.jp/')
ie.Visible = True
while ie.busy:
time.sleep(1)
q = ie.document.all('q')
q.Value = 'python'
btnG = ie.document.all('btnG')
btnG.click()

これでGoogleの検索が出来ることが分かったのですが
検索結果を取り出す方法が良く分かりません
どうすれば出来ますか

837 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 08:32:37 ]
print ie.document.body.innerHTML

838 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 08:53:40 ]
っつーか
urllib2 じゃいかんのか
なにがしたいのかによるが



839 名前:デフォルトの名無しさん [2008/12/29(月) 09:06:23 ]
エラーが出ます><

840 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 11:12:01 ]
Python3.0なんですが、urllib2がインポートできないのでそうしました。
あきらかに日本語ドキュメントがおかしいです。存在しません。

841 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 11:14:54 ]
>>840
py3k の使用はもうちょっと待ったほうがいいって。

842 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 11:18:50 ]
今の日本語ドキュメントは2.5用

843 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 11:24:02 ]
3.0ではurllib周り大刷新してたはず

844 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:00:25 ]
こんなところで質問する人間が使うバージョンじゃない。> 3.0

845 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:16:30 ]
正式リリースされているんだからもっとレスがついていいと思う

846 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:42:20 ]
英語読めない奴は2.5系使うのがいいよ。

847 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:43:50 ]
英語読めても各種ライブラリを自分で移植したりビルドする気のない奴は(ry

848 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:57:35 ]
正式リリースされたからってすぐ飛びつくもんじゃない。

メーカー製品みたいに、ドキュメントからサポート体制からリリースに合わせて
全力で整えてるわけじゃないんだから。



849 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 12:59:05 ]
3.0から入るのも良いけれど、その場合は日本語ドキュメントはアテにならないから
英語ドキュメント読まないと。

850 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 18:34:58 ]
怒濤の勢いで止めとけレスがw

851 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:15:45 ]
僕はパイソンを使う権利が無い、資格が無いという事ですね。
こんなだから日本のPythonユーザの数は少ないんじゃないでしょうか。

明らかにおかしい。

852 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:27:26 ]
どのバージョンも好きに使う権利があるが、
2.5.2がふさわしい。むしろ2.5.2のThe King。

853 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:32:18 ]
>>851
出たばかりだから枯れてないし、情報も出回ってないから、
古いの使っとけ、というアドバイスをそこまで曲解するほうがおかしい。

854 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:38:22 ]
>>851は荒らしだろ、相手にするなよ。
でも>>851の親がイカれた奴なのは確かだ。


855 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:40:42 ]
>>854
相手するなよ

856 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:47:43 ]
ろくにwhat's newも読まずに最新のバージョンを使って、urllib2がインポートできない
からとwin32comを使い、3.0は止めとけばと言われれば僻み丸出しとか馬鹿なの?

857 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 20:31:39 ]
まあそう煽るなよ
初心者ならドキュメントの類を隅々まで読んでいないのも
一番新しい正式リリース版をインストールするのも、別に不思議なことじゃない

>>851はいつもの釣りだろ

858 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 20:33:32 ]
まあ普通にバカだわな



859 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 20:45:17 ]
>>852
っ2.5.4

860 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 22:27:45 ]
またruby厨の降臨かよ

861 名前:デフォルトの名無しさん [2008/12/29(月) 22:47:04 ]
>>847
Ruby使うのやめてPythonにしたのは
各種ライブラリがそろってて
Rubyみたく自分で移植しなくてもよかったから
いまさらPy3kでライブラリ移植する必要が出てくるなら
Ruby使ってた方がまし

862 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 22:48:08 ]
マニュアルの類は読まないってのが世間一般の常識として浸透してるから
そう目ゴジラ立てて怒らんとってくれ。

863 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 22:48:56 ]
アドバイスだよ

864 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:00:10 ]
アドバンスなら大いに結構

865 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:00:48 ]
なんかレベルというより年齢層が高くなってきたな。

866 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:06:28 ]
>>861
ならRuby使ってればいいじゃない
誰も君に強制はせんよ

867 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:19:43 ]
エンドユーザーならまだしも開発者がマニュアル読まないとかバカですって言ってるようなもんだろ

868 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 23:20:47 ]
>>867
もう3.0の仕様を隅々まで把握してんのか?
すげーな



869 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 00:12:19 ]
>>861
Pythonは、2.x の間は下位互換性を大事にバージョンアップしてきたし、
2.x -> 3.y は下位互換性失われるけど、 3.x -> 3.y はまた互換性をできるだけ
確保しながらバージョンアップしていく。

Rubyだと、1.8->1.9 でも、 1.9->2.0 でも、きっと互換性の問題出るよ。

870 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 00:28:41 ]
>>868
差分があるしね

871 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 00:34:38 ]
>>868
必要に応じてマニュアルを読む事とマニュアル全てを把握している事は別

872 名前:デフォルトの名無しさん [2008/12/30(火) 01:06:39 ]
>>869
1.8.6→1.8.7でも互換性の問題あるし、
1.8.6でも仕様を替えて互換性がなくなったこともあった。

873 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 01:35:53 ]
Rubyの問題は仕様が明示されていないことだ。
互換性の問題があるのかどうかすら分からないのだ。
こんな言語を仕事に使おうと思う奴は馬鹿かアホかキチガイだと思う。

874 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 01:39:47 ]
Python仕事に使ってんのか
いいな

875 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 01:45:02 ]
3.0 始める人は、What's new, PEP3000 と 2to3 くらいは把握しておいた方がいいと思う。
ライブラリで移動したものも捕捉してくれる。>2to3
- from urllib2 import urlopen
+ from urllib.request import urlopen


ところで、googleでの検索なら API 使ったほうかいいんじゃないかな。

google 検索を urllib でやる場合、UserAgent 等を設定しないといけないので注意。
また、自前で検索結果をパースする場合 BeautifulSoup 使いたいなら 3.0 だとまだちょっと手間がかかる
(windowsユーザにとって)。先日のリリース で BeautifulSoup も 3.0 に対応したみたいだけど、
パッケージ内に diff や パッチを当てるto3.sh が含まれているだけなので、自分でパッチ当てないといけないみたいだし。

876 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 02:07:46 ]
まあその辺は元からのPythonユーザや、このスレ見てる人にはわかってることでしょ

Pythonとやらを試してみっか、と考えた大量の新規ユーザが
地雷にはまってるだろうことは想像に難くないが

877 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 03:03:52 ]
>>876
ライブラリが対応しているかどうかはプロジェクトのページを見れば書いて
あるし、まだほとんどのlinuxディストリビューションでは3.0は標準でイン
ストールされていない。その状況には同意しかねる。
それに公式のダウンロードページにもこう書いてある。
> Note that both Python 2.6 and 3.0 are considered stable production
> releases, but if you don't know which version to use, start with
> Python 2.6 since more existing third party software is compatible
> with Python 2 than Python 3 right now.

ここであえて3.0を選ぼうという初心者が大量にいるとは思えない。

878 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 03:11:25 ]
そんなことはスルーor知らずに3.0選んでこそ真の初心者とも言えるがな



879 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 03:28:55 ]
初心者ならLinux使ってないだろうし
良く知らない言語をちょっと試すかってときに
わざわざ英文なんて読まないよな

880 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 03:34:32 ]
ttp://japanese.joelonsoftware.com/uibook/chapters/6.html

881 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 04:10:14 ]
日本語ドキュメント、書籍、等の外部のリソースの事も考えると
公式サイトの勧めているバージョンが、必ずしも全てのユーザに合ってるとは限らないってのが現状じゃない?
いくら互換性があるといっても、(2.x系)例えば windowsユーザだと、ライブラリのインストールで
ビルド済のインストーラが必要なユーザ層等もいるはずだし。

今は、若干 Python のリリースが先行してる時期だと思う。
早くどれかのバージョンに収束して欲しいという意味を込めても、
出来るだけ新しい安定版を勧めたいとこだけど...

その辺(これからどのバージョンを使うか)の認識って皆どうなんだろう?


882 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 04:16:00 ]
とりあえず、自分の認識をまとめて書き出してみる。(突っ込み歓迎)


これからPythonを試してみる人
ライブラリ類が必要 -> 2.x
日本語ドキュメントも必要 -> 2.5
レンタルサーバで使いたい -> 2.4 が無難?

これから新規にライブラリを書く既存Pythonユーザ
2.xユーザを考慮するなら -> 2.6 ベースでコード書いて2to3

新規にアプリケーションを書く人
ライブラリが必要なら -> 2.x
過去の遺産なんていらない -> 3.0

こんなアドバイス必要ない
-> 複数バージョンをインストール済


883 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 04:39:04 ]
>>866
国語力ないですねw

884 名前:デフォルトの名無しさん [2008/12/30(火) 05:32:48 ]
これからPythonを試してみる人 -> 3.x
ライブラリ類が必要 -> 2.6.x
日本語ドキュメントも必要 -> 2.6.x
レンタルサーバで使いたい -> 2.6.x

これから新規にライブラリを書く既存Pythonユーザ -> 3.x
2.xユーザを考慮するなら -> 2.6.x ベースでコード書いて2to3
新規にアプリケーションを書く人 -> 3.x
ライブラリが必要なら -> 2.6.x

こんなアドバイス必要ない -> どうせ読んでないだろうから何も言いません

885 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 05:44:29 ]
いろいろ、ごにょごにょしようとすると、
ライブラリ便利だなぁ、、

886 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 06:06:17 ]
ライブラリの力を自分の能力と勘違いしてしまいますよね

887 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 07:17:39 ]
>>879
なら、本、買えよ
中央図書館で借りてこいや

888 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 07:29:43 ]
いるいる
勘違いした香具師



889 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 07:39:06 ]
>>879
> 初心者なら(略)読まないよな

帰国子女初心者の僕に対する挑戦と受け取りますた


890 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 07:57:41 ]
BeautifulSoup Release 3.1.0 (2008/12/27)

2.4/3.0 のハイブリッド版。新しい機能の追加等はなし。3つの後方非互換が在り。

1. str()や__str__の振舞が変わる。-> バイト文字を得るにはencode()/unicode文字を得るには decode() を使う。
2. SGMLParserベースからHTMLParserベースに変更。(sgmllibが標準からなくなるため)
此れにより、壊れた HTML文書 を扱えなくなる。
将来のバージョンでは、速度と壊れたHTML文書の扱いのトレードオフで、パーサを選択できるようにする予定。
3. (Python3で) 属性中のエンティティの扱いで、パース時にunicode文字に変換されることがある。
例: <a href="crummy.com?sacré&bleu"> -> Python 3 では é が "\xe9" に。


891 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 08:27:42 ]
3.0対応版出すの早いな。GJ

892 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 08:33:57 ]
ライブラリなかったら他の言語使うし

893 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 09:22:13 ]
ライブラリ使わない開発なんてあるのか?
Hello Python!レベル?

894 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 12:01:18 ]
帰国子女って変な用語だよな
帰国子士にすべき

895 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 13:11:55 ]
谷底から這い上がってきた感じがする

896 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:20:59 ]
僕も全然始めたばっかりの初心者だけど
3.0でUnicodeが云々で日本語の扱いがより簡単になった
(2系程複雑じゃない?)から3.0から始めたいなぁ、とか思ったよ。


897 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:29:39 ]
今でもUnicodeEncode(Decode)Errorを見るとため息が出る。

898 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:37:04 ]
UnicodeEncode(Decode)Error
慣れれば原因想像つくんだけど
途方に暮れてる人も多いんじゃないかな



899 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 17:42:28 ]
初心者にもいろいろいるだろう

Perlから来た人
COBOLから来た人
FORTRANから来た人
とかの「他言語の経験のあるPython初心者」とか
Linux?何それおいしいの?な「Linux初心者&Python初心者」とか
プログラミング言語?何それおいしいの?っていうかWindowsって何?とか

900 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 18:38:37 ]
>>896
>3.0でUnicodeが云々で日本語の扱いがより簡単になった

より簡単になった?
ご冗談はよしてください。

901 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 20:08:41 ]
バイト列とユニコード文字列が別にあって
でも両方にほぼ同じメソッドがあって(encode, decodeまで)
でも中身は別物なので使い分けないといけない

という状況が解消されたんだから
「より簡単になった」と言っていいと思うよ

902 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 20:47:36 ]
「マシになった」と言うべき

903 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 20:59:33 ]
より良くなったと見るかより糞でなくなったかと見るか

904 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:08:13 ]
文字列から正規表現にマッチする部分をすべて探して表示するにはどうすればよいでしょうか?

log: 文字列
regex: コンパイル済み正規表現
のとき

res = regex.search(log)
print res.group()
としたところ、最初にマッチしたもののみが返されるというところまではたどり着きました。

905 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:12:12 ]
ttp://www.python.jp/pipermail/python-ml-jp/2008-December/004566.html

いやー、簡単になって本当〜〜〜に良かったよね!!

906 名前:デフォルトの名無しさん [2008/12/30(火) 21:13:59 ]
UnicodeEncodeError: 'cp932' codec can't encode character u'\xbb' in position 2091: illegal multibyte sequence

こんなエラーが出るんですけど原因はなんでしょう?

907 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:27:21 ]
>>904
6.2. match() vs search()
match() 関数は、正規表現が先頭でマッチするかを調べるだけで、
search() は文字列の先へ進みながら、マッチする部分を探します。
この違いを覚えておくことは重要です。
match() は位置 0 でマッチした場合のみ報告してくれます。
もしマッチが位置 0 以外ならmatch() は報告しません。

>>> print re.match('super', 'superstition').span()
(0, 5)
>>> print re.match('super', 'insuperable')
None

反対に、search() は文字列を先へと探していき、最初に見付けたマッチを返します。

>>> print re.search('super', 'superstition').span()
(0, 5)
>>> print re.search('super', 'insuperable').span()
(2, 7)

ときどき、あなたは re.match() のみを使って、
正規表現の前に .* を付けておくという誘惑にかられるかも知れません。
この誘惑に打ち勝って、re.search() を使いましょう。
正規表現のコンパイラは、マッチ部分の探索を高速に行うために、
正規表現をそれなりに解析します。
そのような解析のひとつが、最初のマッチ文字が何であるか見付けることです。
たとえば Crow で始まるパターンは "C" で始まる文字列とマッチしなければいけません。
この解析により、マッチングエンジンは、文字列の中から最初の文字を素早く探索し、
見付かった場合だけ全体のマッチを試みるのです。
.* を付け加えると、この最適化ができないため、文字列の最後まで探索してから、
残りの正規表現のマッチ部分を探しに逆戻りすることが必要になるのです。

908 名前:904 mailto:sage [2008/12/30(火) 21:32:29 ]
>>907
match でなくて search を使うところまではわかったのですが「次にマッチするもの」はどのように取得するのですか?



909 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:32:45 ]
re.findall使えとかそういう話じゃないの?

910 名前:デフォルトの名無しさん [2008/12/30(火) 21:38:59 ]
>904
>>> import re
>>> l = 'hagefugahogemogepiyo'
>>> r = re.compile('ge', re.I)
>>> [m for m in r.findall(l)]
['ge', 'ge', 'ge']

911 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:40:00 ]
python.jp の説明が糞な件

912 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:41:26 ]
finditerの方が良いって話もあるけど実際どうなん?

913 名前:デフォルトの名無しさん [2008/12/30(火) 21:41:42 ]
>>904
findall

914 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:48:11 ]

>>> r = re.compile('(a)(g)', re.I)
>>> [m for m in r.findall(l)]
[('a', 'g')]
>>> [m.group(0) for m in r.finditer(l)]
['ag']
>>> [m.group(1) for m in r.finditer(l)]
['a']
>>> [m.group(2) for m in r.finditer(l)]
['g']

915 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:50:11 ]
>>910
[m for m in r.findall(l)]
やってることが意味不明なんだがwwwwww

916 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:51:42 ]
>>915
[o for o in [n for n in [m for m in r.findall(l)]]]

917 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:53:08 ]
>>> r=re.compile('(a)(o)', re.I)
>>> [m for m in r.findall(l)]
[]
>>> [m.group() for m in r.finditer(l)]
[]
>>> [m.group(0) for m in r.findall(l)]
[]
>>> [m.group(1) for m in r.finditer(l)]
[]
>>> [m.group(2) for m in r.finditer(l)]
[]

918 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 21:59:51 ]
>915
おまえは黙ってろ



919 名前:デフォルトの名無しさん [2008/12/30(火) 22:27:12 ]
>>910
>>> [m for m in r.findall(l)]
['ge', 'ge', 'ge']

>>> r.findall(l)
['ge', 'ge', 'ge']

920 名前:904 mailto:sage [2008/12/30(火) 22:38:51 ]
>>910 のとおりだとうまくいかず、マッチするべきものの部分文字列のタプルのリスト (で表現があってるかどうかわかりません、間違っていたらごめんなさい) が返されてしまいます。
カッコ () がついたものだとダメなのでしょうか?
使用している正規表現は、単純化すると
r'(ho|ge){2} [hoge] (ho[ge]){4}'
のような形をしています。


921 名前:904 mailto:sage [2008/12/30(火) 22:45:54 ]
無理矢理、カッコを使わないような形にしたところ動きましたが、もとの正規表現のままで解決可能であればお願いします。

922 名前:904 mailto:sage [2008/12/30(火) 22:47:42 ]
まだでしょうか

923 名前:デフォルトの名無しさん mailto:sage [2008/12/30(火) 23:00:38 ]
ん?
regexp = re.compile(r'(ho|ge){2} [hoge] (ho[ge]){4}')
[ m.group() for m in regexp.finditer('hoge h hoghoehoghoe') ]
でいいだろ

924 名前:923 mailto:sage [2008/12/30(火) 23:01:55 ]
あ、finditerの引数は実際の入力を入れるようにしてね

925 名前:904 [2008/12/30(火) 23:28:49 ]
>>923
成功しました。ありがとうございます。

>>922は偽者です

926 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 01:02:38 ]
くそったれなHTMLはBeautifulSoupに食わせてから他のxmlライブラリに渡せばいいことに気づいた

927 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 02:05:15 ]
pythonのwebフレームワークはキャッシュ生成して鯖に負担かけないとかまでやってくれるのかな
できないらword pressと組み合わせたほうがいいかとも思いはじめてるんだが

928 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 02:13:26 ]
もしかしたらRuby使った方が効率がよいかもしれんが



929 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 02:56:04 ]
>>927

WSGI対応フレームワークでは、それは Middleware の役割。
どのWSGI対応フレームワークからでも、プラグインのように、
必要に応じて CacheMiddleware等 を追加してサーバを構成する事が可能。(例: Pylons + Beaker)


930 名前:デフォルトの名無しさん mailto:sage [2008/12/31(水) 06:49:39 ]
>>927
Google App Engine はキャッシュ持ってますよ
有効期限も自分で設定出来る






[ 続きを読む ] / [ 携帯版 ]

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

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