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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2009/05/24(日) 19:25:51 ]
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますが、
お礼は Python の布教と初心者の救済をお願いします。

エラーを解決したいときはエラー表示や環境を略さずに書き込んで下さい。
騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。
次スレは >>950 辺りで

前スレ
くだすれPython(超初心者用) その3
pc12.2ch.net/test/read.cgi/tech/1232055225/

関連スレ
Pythonのお勉強 Part33
pc12.2ch.net/test/read.cgi/tech/1240678081/

161 名前:デフォルトの名無しさん [2009/06/08(月) 12:04:12 ]
質問です!
最近、BlackJumboDogを使ってWindowsXPでWEBサーバを立てたのですが
PerlとRubyは動くのにPythonが動きません。
cmdから「perl -v」「python -v」「ruby -v」をやるとエラーの雰囲気は無い応答が帰ってくるので
問題ないとおもうのですが、何か原因がわかるかたいますか?
ちなみに「python -v」を打ち込むとperlやrubyではバージョンとかが出るのですが
pythonだけ対話モードみたいなのに入ります。
cgiの中身は以下のようになってます。

#!/python

# -*- coding: utf-8 -*-
import cgi
import cgitb
cgitb.enable()

print "Content-Type: text/html"
print
print "hello world."

アクセスすると真っ白です。
どなたかお助け願います。お願いしますよろしくお願いします!

162 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:17:42 ]
>>161
かなり特殊なサーバーみたいだね。
www.kamezoh.net/bjd-doc/bjd-doc/WebCgi.html
これをみると、拡張子とインタプリタの関連付けを一個一個埋め込みで実装している
ような気がする。で、Pythonには対応していないから実行できなさそう。

163 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 12:29:30 ]
>>162
まま、マジですか!
ありがとうございます。
原因がBlackJumboDogにあるとは考えてなかったので
それを念頭にまたググってみます。

164 名前:デフォルトの名無しさん [2009/06/08(月) 13:15:30 ]
>>161
python -V (大文字)

165 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 15:08:16 ]
>>164
多分bingoだろうな。どうして--helpとか、-hをまずしないのだろうか。

166 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 15:23:13 ]
ついでに晒しとく

6924.teacup.com/kamezoh/bbs
かめぞ〜掲示板
雑談 兼 避難所

げ! 投稿者:かめぞ〜 投稿日:2008年 9月 4日(木)20時34分22秒   返信・引用
勝手に広告なんか入れやがって・・・SPAM業者と変わらんではないか。

掃除掃除。( ´〜`)y-~~


空いた時間を有効活用
バイト探しはお任せ。高時給から短時間バイトまでおすすめ情報を比較。

リフォームしませんか
リフォーム情報が満載。人気のリフォーム会社を徹底比較。

おしゃれ女性かつら情報
ファッションから医療用まで、女性用かつら・ウィッグ情報はコチラ。

167 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 17:22:26 ]
>>161
特別な事情やこだわりがない限り
WebサーバはApache使ったほうがいいんじゃまいか

168 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 19:40:31 ]
>>161
俺はANHTTPDを使ってる
これならPythonだろうがなんだろうが動くぞ

169 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:20:46 ]
Winなら、Linuxの仮想環境作ってその中でWeb鯖立てるのが本当はおすすめ



170 名前:デフォルトの名無しさん [2009/06/08(月) 22:40:41 ]
あの〜インタラクティブシェルでだらだらコードを書いた後にクリアしたい(今までのコードをを消したい)
時は再起動しかないですか?(プログラムを)

171 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 23:08:55 ]
wsgiだろ常考

172 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:40:26 ]
>>162
へえ、と思ってソース(TVWeb.cpp)を見たが、以下のようなロジックなので
pythonインタープリターとパラメーターがちゃんと1行目に書いてあれば
大丈夫っぽい。

1行目が#!で始まっている
 →perlという文字があればperl、rubyという文字があればrubyと見なす
 どちらでもなければコマンドへのフルパスと見なす(/は\に置換)
1行目が<?で始まっている
 →phpと見なす

何がcgiモジュールなのかは、設定ダイアログで設定した拡張子で判断する。
ただし、拡張子と実行コマンドが紐付けされるわけではなく、上記のロジックで
判断される。

173 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 03:47:45 ]
>どちらでもなければコマンドへのフルパスと見なす(/は\に置換)

じゃあ
#!c:/Python26/python.exe
って書かないといけない訳?

174 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 07:54:25 ]
だっさ

175 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:11:34 ]
/cygdrive/c/IronPython/py2/ipy.exe

176 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 08:07:17 ]
Python CGI
pc11.2ch.net/test/read.cgi/php/1163513344/

いつまで板違いの話をしてんの

177 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 09:16:42 ]
海の日

178 名前:デフォルトの名無しさん [2009/06/10(水) 11:44:06 ]
つゆ入り

179 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 22:56:31 ]
>>176
他の板に適切なスレがあるからと言って、即スレ違いということにはならん。
誘導自体は否定しないけどね。



180 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 16:09:25 ]
アフォ毛

181 名前:デフォルトの名無しさん [2009/06/11(木) 17:10:28 ]
pythonもオブジェクト指向も初心者です。
次のようなことをしたいと思ってます。

クラスA、クラスB、クラスCがある。
1、クラスBからの出力を、クラスAが入力として受け、クラスAのなんらかのメソッドを実行する。
2、クラスAのメソッド実行終了後、クラスCのメソッド実行に移る。

どうやったらいいか、思考の材料さえ頭の中にない状態です。キーワードだけでも教えてください。

182 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 18:00:42 ]
>>181
pc12.2ch.net/test/read.cgi/tech/1153585095/

183 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 19:56:01 ]
>>181
まず、何でもいいから
「クラスを定義してインスタンスを作ってメソッドを実行する」
くらいは出来るの?

184 名前:181 [2009/06/11(木) 20:18:11 ]
>>183
ようやくそれができるようになった段階です。

185 名前:デフォルトの名無しさん [2009/06/11(木) 21:57:35 ]
前にも出ましたが、「ファイル名の書き換え」
例えばディレクトリ指定はコード内に書く。
フォルダ内のごちゃごちゃ名前のmp3ファイルをa01.mp〜a0n.mp3まで順に書き換える。
参考にさせて頂きたいのですが、サクサク書ける方いましたら宜しくお願い致します。


186 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 22:15:48 ]
Python何が得意なの?
webサーバーのCIとか得意ですか?

187 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 00:21:57 ]
>>186
Pythonは、汎用のプログラミング言語だから、大抵の事に適しているよ。

デスクトップアプリ: BitTorrent, DropBoxクライアントなど
Webアプリ: Zope, Django, TurboGears
埋め込み: 各種ゲーム、CG
サーバー: Webサーバー、FTPサーバー、メッセージングサーバー

188 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 03:17:45 ]
なんか板違いが多いな
web板逝けよ
pc11.2ch.net/test/read.cgi/php/1163513344

189 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 07:28:25 ]
それコピペ



190 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 08:55:15 ]
それもコピペ

191 名前:デフォルトの名無しさん [2009/06/13(土) 22:57:07 ]
関数の戻り値ってのがちょっと理解できないんですが、
これってどういう目的で行うんですか?関数によって返されたオブジェクトを変数に代入すれば同じ
効果ですか?
ちょっとわかり難いので、噛み砕いてご説明いただけると幸いです。
プログラミング自体初心者です。宜しくお願いします。

192 名前:デフォルトの名無しさん mailto:sage [2009/06/13(土) 23:31:07 ]
一回スパゲッティを作ってみるといいよ

193 名前:デフォルトの名無しさん [2009/06/14(日) 00:20:46 ]
スパゲッティと関係あるんでしょうか

194 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 01:04:35 ]
引数が入力なら戻り値は結果だよ

例えば足し算の関数 add を作ってみる

def add(x, y):
  return x + y

これを answer = add(2, 3) と使うと、
add さんに 2 と 3 を足してくれーと頼んで、add(2, 3) はその結果の 5 に置き換わると考えてかまわない
つまり answer = 5 みたいになって、answer には 5 が代入される
answer = add(2, 3) * 3 なら answer = 5 * 3 みたいになって 15 が代入される

195 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 09:46:43 ]
reduceがようわからんのですが

196 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 10:38:01 ]
>>195
おれもよくわからんのですが、forループで書くよりreduceで書いたほうがカッコいいというのは分かる。
つまり結果が一個になるforループはreduceで書いてる…

おなじく結果の個数が変わらないforループは、mapで書いたほうがカッコいいのでそうしてる。

197 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:08:24 ]
>結果が一個になるforループはreduce

とは限らないんだよねぇ

198 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:30:03 ]
>>197
えー
教えてくだしあ

199 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:35:10 ]
reduce は

x1 ⊕ x2 ⊕ ... ⊕ xn

のこと。
リストx1, ..., xnと2項演算子⊕を与えられればこの計算は定義できるでしょ。



200 名前:デフォルトの名無しさん [2009/06/14(日) 12:39:17 ]
>>194
ありがとうございます!
returnを使わないと、戻り値を変数に代入できないのですが、
それを代入できるようにするのがreturnと考えてもOKですか?

201 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:49:58 ]
>>200
Pythonに代入というものはない。
すべてbindingだ。

202 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:51:45 ]
>>200
不思議な頭の構造してる人だなぁ。
returnを使わないと、戻り値がそもそも「ない」。
あなた「戻り値」って何だと理解しているわけ?

203 名前:デフォルトの名無しさん [2009/06/14(日) 12:55:10 ]
「戻り値」=「結果」?
>>returnを使わないと、戻り値がそもそも「ない」。
っていうのがよくわからないんですよね
参考書などではreturnのところがprint文で結果を表示するようになってますよね。
その違いってなんですか

204 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:56:30 ]
なんか着眼点がずれてる。

205 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 12:58:55 ]
えー
newlist = reduce(lambda x,y: x+y, inputlist) リストの内容を全部連結したリスト作る
たとえばこんなreduceもあるかもしれんけど…
結局どういうとこで使うのが一番カッコいいのか良く分からんのですよ。
逆に正直に言うとですね、「コイツこういうとこではreduce使えよバカ」と思われないためには
どうしたらよいでしょうかw

206 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:03:18 ]
>>203
呼び出して任せて何かさせて終わり、なら、戻り値は要らない。
呼び出して結果を報告させるには、戻り値が必要。

207 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:05:49 ]
「関数の呼び出し側の都合」と、
「関数内部の都合」がごっちゃになってるんじゃね?

関数は作る人と使う人がいる。

208 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:06:01 ]
>>205
速度面などで必要ないなら使わなくておk

209 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:06:39 ]
>>205
使う意義がよく分からないものは無意味に使わないのが
Python的にはカッコイイ。



210 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:09:48 ]
高階関数にreduce的な関数を渡す必要があるときは reduceを使う。
わざわざlambda でごちゃごちゃと車輪の再発明するのはカコワルイ。
もっともreduceをとる高階関数なんて、見たことないけど。

211 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:13:29 ]
はっきり言うとreduceはいらない子。
使わなくてよろしい。

212 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:17:14 ]
>>211
非常にすっきりしました。
map/reduceの兄弟、兄は本当に便利な子だけど弟は「はっきり言って要らない子なのよね」
とつぶやく母、それを聞いてしまい泣きながら家を飛び出すreduceくんということですね。

213 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:21:02 ]
関数型プログラミングやろうとするとreduceの出番も出てくるけど、
Pythonの場合、関数型にこだわる意味がないからな。

214 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:28:54 ]
>>203
初心者が対話型プロンプトで標準出力への出力と
関数の戻り値が区別つかなくなるのは典型的な落とし穴

print 'hoge' # 'hoge'を標準出力に書き出す。戻り値もへったくれもない

215 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:29:51 ]
map/reduce/filterは使い始めると際限ないから基本使わない

216 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:36:31 ]
小手先の技は、俺SUGEEだけのために存在する。
そういう奴に限って、アルゴリズムがさっぱりだったりするw

217 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:44:19 ]
抽象化を「小手先の技」とか思っちゃう奴はこの先真っ暗だぞ。

218 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 13:51:07 ]
これは抽象化じゃないだろw

219 名前:デフォルトの名無しさん [2009/06/14(日) 13:56:24 ]
>>標準出力への出力と 関数の戻り値
>>関数は作る人と使う人がいる。
難しいな




220 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:24:22 ]
filterは普通に便利だし。
Cしか知らない人が「何なのこれ??」っていうから、
このmapってのがfor i = 0 to... のループで、filterってのがループの中のif文ですな、
展開してみるとこんな具合です。と説明したら「SUGEEEE」言ってた。

221 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:29:03 ]
>>214
なるほど、式を評価してそのまま表示するから、
かえって分かりにくくなってるってことか。

222 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:38:50 ]
>>212
reduceが兄で
mapが弟ですよ

223 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:40:20 ]
>>214
printの戻り値は無視ですかそうですか

224 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 14:50:58 ]
printの戻り値?あれはステートメントだろ。


225 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:09:59 ]
printはもう文じゃなくて関数になったよ^^

226 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 15:12:15 ]
変な煽りは本スレでどうぞ
少なくとも>>214のprintは誰が見ても文

227 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 21:56:20 ]
print関数も戻り値ないんだよ^^

228 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 21:58:27 ]
reduceが抽象化じゃないとか、痛い人がいるな。

pythonは処理の構造を抽象化するオツムなんかプログラマに期待していなくて
バカでもちょっとだけ賢い人も同じ処理を書くと同じようなコードになるよう
誘導する言語だから、ループ書けという方向になってる。
reduceとかは、初期に有能なプログラマを魅きつけるためのプログラマホイホイ
みたいなもので、十分普及した今となってはいらん子扱い。

229 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 22:10:57 ]
えっと
ネタだよね



230 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 23:38:37 ]
228の要約
forを書くプログラマは馬鹿

231 名前:デフォルトの名無しさん mailto:sage [2009/06/14(日) 23:47:00 ]
頭がreduce

232 名前:デフォルトの名無しさん [2009/06/15(月) 01:02:07 ]
mapやreduceがなくても実際ほとんど困らないけど
なくなっちゃったらなんか味気ないよねえ
リスト内包表記がなかったら少し困るけどね


233 名前:デフォルトの名無しさん mailto:  [2009/06/15(月) 02:44:24 ]
うちの嫁はreuse

234 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:33:27 ]
mapは複数のリストに演算を適用したいときに使うかな
ベクトルの加算みたいな
+をoperator.addとかタイプせなあかんのはウザいが

235 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:38:54 ]
forよりmapの方が速いんじゃなかったっけか?

236 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 10:59:50 ]
operator.add と lambda x,y:x+y だとどっちが速いですか

237 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 11:07:23 ]
newworld.ddo.jp/doc/PerformanceTips/
の真ん中あたりに。

バージョン 時間(秒)
基本的なループ 3.47
ドットを取り除いたもの 2.45
ローカル変数&ドットなし 1.79
map関数をつかったもの 0.54

238 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:08:48 ]
リストの項目を文字列に入れたいんだ。

A = [1,2,3]
print "%d, %d, %d" % (A[0], A[1], A[2])

で出来るが、

print "%d, %d, %d" % A

これだと TypeError: int argument required と言われる。
エラーになるのはわかるんだが、そこをなんとか、
Aのインデックスをいちいち指定しないで、
そのまま文字列の場所に入れる方法ってないですか?

239 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:16:36 ]
tuple(a)



240 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:17:46 ]
tuple(A) だろ
もしくは A = (1, 2, 3)

241 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:34:11 ]
ありがとうございます。
タプルの方は出来るのか・・

242 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 13:34:39 ]
ディクショナリにして使うと、順番も気にしなくていいぞ。

243 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:09:23 ]
print "%d, %d, %d" % *A

244 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:11:16 ]
SyntaxError: invalid syntax

245 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:28:19 ]
print "%d, %d, %d" % (*A)

246 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:53:55 ]
SyntaxError: invalid syntax

247 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 18:57:05 ]
print A

248 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 21:24:18 ]
str(A)

249 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 21:25:06 ]
str(A) .strip('[]')



250 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 01:51:59 ]
reduce はいらないこだろ。

実際3.0からはreduceは無いわけで。

map、filterもなくなるの時間の問題でしょ。

251 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 02:03:17 ]
>実際3.0からはreduceは無いわけで。

kwsk

252 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 02:10:36 ]
>>251
3.0からはbuiltin関数ではなくなって、モジュールへと追いやられた。
Guido は、他のmapやfilterもbuiltinからは外すべしと主張してたが、これらは3.0ではなんとか残った。
4.0になったときには、builtinから外れてもなんら不思議ではない。

253 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 02:27:00 ]
あと、上の方にあるベンチマークだが、
あれはかなり古いPythonのベンチ。


リスト内包表記はバージョンがあがるたびにスピードアップしてて、
現在では、lambdaなしのmapに準ずるほどのベンチスピード。
一方、mapでlambdaを使ったら、リスト内包表記どころか、
通常のforループと同じかそれより遅いぐらいになる。

254 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 03:58:35 ]
ということは3.0以上ではreduceは
全部リスト内包に置き換えた方がよい
ということですね

255 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 05:55:35 ]
>>253
それって、リスト内包では評価対象がイテレータになるんで速い、ってことなの?

256 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 06:36:32 ]
>リスト内包表記はバージョンがあがるたびにスピードアップしてて、
>現在では、lambdaなしのmapに準ずるほどのベンチスピード。

現在とは3.0ですか2.6ですか

257 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 07:09:21 ]
>>254
reduceをいったいどういう内包表現に置き換える積もりなんだ?

258 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 12:42:01 ]
>>4-8
おかげさまでうまくいきました
無料の50MBだとコンパイルに失敗(というかソースの展開ですでに失敗)するので
quota3GBのお試し期間を申し込んだら2.5.4をまるごとコンパイルできました
setuptool/mysqldb等も放り込んでMySQLにもアクセスできました
お試し期間が終わるとquotaが50Mに戻るので放っとくとファイルが壊れるそうで
それまでに必要最小限サイズになるように標準ライブラリを削る必要がありました
結局バイナリCGIのケースとやってることはあまり変わらないかもしれません

259 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 13:47:20 ]
>>253
mapで使う関数は、defしたほうがいいってことですか?
defしたリスト内包表記>defしたmap≒lambdaで書いたリスト内包表記>lambdaで書いたmap≒普通のfor
てことなんすかね。リスト内包表記はCで実装した部分を実行するのが多いってことなんだろか



260 名前:デフォルトの名無しさん mailto:sage [2009/06/18(木) 09:21:38 ]
>>259
普通に自分で def した関数ならば変わらない。
でも、自分で定義しなくても使える関数はC言語で実装されている
事が多いので、同じ事をする lambda よりも高速な事が多い。

速い順に並べると、
1. C関数の内包表記/map
map(str, l)
[str(x) for x in l]

2. Python式による内包表記
[x*2+3 for x in l]

3. Python関数による内包表記/map
def func(x):
  return x * 2 + 3
map(func, l)
[func(x) for x in l]
map(lambda x: x*2+3, l)

なので、mapを使っても悪くは無い場合は、1か、3で既存のPython関数を
使う(map用に用意しなくてもいい)場面のみ。

261 名前:デフォルトの名無しさん [2009/06/18(木) 23:38:12 ]
ユニコード文字列に関して質問させて下さい。
python2.6を使用しておりますが、このVerはユニコード文字列は気にしなくてもいいんですか?
例)
#coding: utf-8

a={"abc":"123","bcd":"456"}
b="コード:%(abc)s 局:%(bcd)s"
print b%a                 #コード:123 局:456

ユニコードのu""は必要ないのでしょうか?
むしろu""を使用するとエラーとなります。







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

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

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