トップページ⇒tech
1001コメント262KB

Pythonのお勉強 Part18

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2007/04/09(月) 04:14:41
前スレ
Pythonのお勉強 Part17
http://pc11.2ch.net/test/read.cgi/tech/1171613101/

日本Pythonユーザ会
http://www.python.jp/
Python オフィシャルサイト
http://www.python.org/

<関連スレ>
Microsoft IronPython 1.0
http://pc8.2ch.net/test/read.cgi/tech/1157686822/
Python の宿題ここで答えます Part 1
http://pc8.2ch.net/test/read.cgi/tech/1153585095/
Python Challengeをやろう!
http://pc11.2ch.net/test/read.cgi/tech/1175919288/

<まとめwiki>
http://python.rdy.jp/

<参考サイト>
Python ドキュメント
http://www.python.jp/doc/release/
Dive Into Python
http://diveintopython.org/toc/
PEP(Python Enhancement Proposal
http://www.python.org/dev/peps/
0153デフォルトの名無しさん2007/04/18(水) 18:09:57
このレベルではかえって迷惑という気も(w
0154デフォルトの名無しさん2007/04/18(水) 18:18:03
なんか初心者臭い流れになってきたな。みんpy野郎のせいか?
頼むから宿題レベルはどこかよそでやってくれ。スレ汚すな。
0155デフォルトの名無しさん2007/04/18(水) 18:20:27
>>154
認定キチガイ乙。
0156デフォルトの名無しさん2007/04/18(水) 18:20:49
初心者質問スレがないんだから
レベルはどうしようもないだろ
0157デフォルトの名無しさん2007/04/18(水) 18:22:52
Wikiなんかに書かないでブログに書けば、だれか添削してくれるんじゃね?
0158デフォルトの名無しさん2007/04/18(水) 18:24:31
>>152
標準ドキュメント嫁
01591362007/04/18(水) 18:29:47
>>152
とりあえずあなたの使えるライブラリの紹介ページplz
0160デフォルトの名無しさん2007/04/18(水) 18:51:27
http://www.python.jp/Zope/links/python_documents

いやいや、最新ではないとはいえ、こんなに親切丁寧で分かりやすい、
しかも**日本語**のドキュメントがあるじゃまいか、ほかに何か必要か?
「枕の下に敷くべき」ライブラリリファレンスもちゃんとあるぞ。
http://www.python.jp/doc/release/lib/

翻訳プロジェクトの中の人マジで乙。いい訳してる。
0161デフォルトの名無しさん2007/04/18(水) 18:54:50
たしかにすげー
0162デフォルトの名無しさん2007/04/18(水) 19:04:11
そういや、どこか組み込み関数か、リストか辞書のメソッドあたりのサンプルスクリプトで
そのままコピペして使ったらちょっとしたtypoでエラーが出た所あったぞ・・・
0163デフォルトの名無しさん2007/04/18(水) 19:05:51
>>162
報告しろ
それか、お前が中の人になって直せ
ドキュメント翻訳は勉強になるぞ
0164デフォルトの名無しさん2007/04/18(水) 19:14:01
>>163
ちゃんとしたドキュメントが無い分野のハウツーを開拓するのでせいいっぱいだ
0165デフォルトの名無しさん2007/04/18(水) 19:26:28
いつも命令口調のコイツって、やっぱアイツ?
0166デフォルトの名無しさん2007/04/18(水) 19:27:37
>>165
そう、君の頭の中に住むアイツだよ(wwww
0167デフォルトの名無しさん2007/04/18(水) 19:30:26
キチガイはスルー
0168デフォルトの名無しさん2007/04/18(水) 19:47:15
165の頭の中。

1) オレ
2) アイツ
3) 脳内妹
4) 時々オカン
0169デフォルトの名無しさん2007/04/18(水) 23:05:58
>>163
見つけた!
組み込み関数の reduce の説明で lambda が labmda になってる部分だった。
ttp://www.python.jp/doc/release/lib/built-in-funcs.html
本家の英文は2.5だけど、正しく lambda になってる
0170デフォルトの名無しさん2007/04/18(水) 23:12:31
明日使えるトリビアをありがとう
0171デフォルトの名無しさん2007/04/19(木) 05:23:44
関数の引数リストが間違ってる部分があった気がするが思い出せない
0172デフォルトの名無しさん2007/04/19(木) 07:24:49
おまいら細かいこと気にしすぎ。見りゃ分かるだろ。
コピペするだけのゆとりか。
0173デフォルトの名無しさん2007/04/19(木) 10:55:17
>>172
見るだけでスペルミスや引数間違いを発見するスーパーハカー登場!!
0174デフォルトの名無しさん2007/04/19(木) 11:01:48
>>173
他人の間違いを指摘しながら自分が間違っている低脳よりマシなのだから騒ぐな
0175デフォルトの名無しさん2007/04/19(木) 11:17:00
いや、まじめな話
labmda が lambda の typo だってのは明らかじゃね?
0176デフォルトの名無しさん2007/04/19(木) 11:23:40
そう
そして,細かいことばかり気になる奴に限って
現場で役に立たないことも明らかかつ一般的なな事実
0177デフォルトの名無しさん2007/04/19(木) 11:46:22
typo厨うぜえ
0178デフォルトの名無しさん2007/04/19(木) 12:21:05
あんまり細かいこと気にしないプログラマも困るけどな。w
バランスが肝心だね。
0179デフォルトの名無しさん2007/04/19(木) 14:25:11
Windowsから、postgresqlにチマっとアクセスするプログラムを作ろうと思っています。
ironpythonとADO.NET(+Npgsql)を使ってやるという手段も考えましたが、定石みたいなものはあるのでしょうか。

古いものについては、下記のドキュメントが見つかったのですが。。
PyGreSQL - Python インタフェース
http://osb.sra.co.jp/PostgreSQL/Manual/PostgreSQL-7.1-ja/pygresql.html
0180デフォルトの名無しさん2007/04/19(木) 16:17:55
「チマっと」
0181デフォルトの名無しさん2007/04/19(木) 16:30:39
>>160
2.5対応はまだまだですかね?
それとも必要無い?
0182デフォルトの名無しさん2007/04/19(木) 17:24:27
>179
DB関係は特定DB用じゃなくORマッパーなるものを介して
ある程度汎用につくってそれを PostgreSQLなりMySQLなりに
つなぐものらしい

SQLobject とかいろいろあるらしい

詳しくは次の人↓
0183デフォルトの名無しさん2007/04/19(木) 17:48:20
>>181
とりあえず今のtypo直すのが先かと
0184デフォルトの名無しさん2007/04/19(木) 18:22:31
2.5.1 ktkr
0185デフォルトの名無しさん2007/04/19(木) 18:41:44
>>182
レスありがとうございます。まさにADO.NETみたいな抽象化したライブラリがあるのでしょうか。
日本語ドキュメントを見つけたので目を通してみます。
http://ymasuda.jp/python/sqlobject/doc_0.7/index.html
0186デフォルトの名無しさん2007/04/20(金) 00:45:57
>>184
おーきてるー
0187デフォルトの名無しさん2007/04/20(金) 03:23:59
日本語変換ライブラリにはいくつかあるけど、
pykfのsplitを便利に使ってたから再度公開してください
0188デフォルトの名無しさん2007/04/20(金) 12:03:03
わかりました。公開します。
0189デフォルトの名無しさん2007/04/20(金) 19:14:02
どんなやりとりだよw
0190デフォルトの名無しさん2007/04/21(土) 10:17:07
windows ユーザですが python 2.5 と 2.5.1 を共存させつつ、
easy_install でインストールしたやつを共有する方法ってありますか?
0191デフォルトの名無しさん2007/04/21(土) 20:51:26
今からPython始めようと思って探したら
ttp://www.python.jp/Zope/download
ってページ見つけたんだけど、

・Python標準リリース
・日本語環境用インストーラ(Win32)

ってどっちがオススメ?(ちなみにWinXP SP2に入れる)
上はバージョン2.5みたいだし
下はバージョン2.3って書いてあるけど日本語ドキュメント添付でSJIS・日本語ファイル名対応って書いてあるし。

それとも、もっといいトコがあるのかしら。
0192デフォルトの名無しさん2007/04/21(土) 21:22:37
ふつうに2.5
0193デフォルトの名無しさん2007/04/21(土) 21:41:53
最新は2.51
2.5には対応してないのもあったりするけど
普通にpythonの勉強してみようってことならとりあえず最新でいいんじゃね?
0194デフォルトの名無しさん2007/04/21(土) 21:55:25
$python -c の使い方教えてくれ。
0195デフォルトの名無しさん2007/04/21(土) 21:57:22
解決した
0196デフォルトの名無しさん2007/04/21(土) 22:10:57
よかったね
0197デフォルトの名無しさん2007/04/21(土) 23:34:56
>>188
ネタじゃなくホントだったら嬉しい!
0198デフォルトの名無しさん2007/04/21(土) 23:44:52
つ ttp://web.archive.org/web/*/http://www.gembook.jp/html/download/pykf-0.3.4.tgz
0199デフォルトの名無しさん2007/04/22(日) 00:57:34
>>python -c
これってワンライナーしか無理?
02001912007/04/22(日) 01:37:15
>192-193
日本語環境の方が安心なんじゃ…?と思って訊きました。
とりあえず2.5入れてみます。
ありがとうございました。
0201デフォルトの名無しさん2007/04/22(日) 01:47:47
ツーライナーでもスリーライナーでもいけるよ。
0202デフォルトの名無しさん2007/04/22(日) 02:14:43
おーなるほど、単にクオートを閉じなければいいのか・・・
0203デフォルトの名無しさん2007/04/22(日) 15:30:27
2.5にしたらある特定のpythonのpyファイルからファイル名が使われてる
みたいなエラーがでて読み取れなくなるような
状態になったから2.4にもどしたよ
0204デフォルトの名無しさん2007/04/22(日) 15:30:48
pythonで動画(mpgに変換可能)を再生しつつ、その上で簡単なアニメーションを動かすには
どんなライブラリが良いでしょうか? 開発はwindows上です。

アニメは単に動画上の物体をトレースするマーキングみたいなもので出来れば、動画のランダム再生で
シンクロできるようにしたいと思っています。
0205デフォルトの名無しさん2007/04/22(日) 15:32:27
そんなことも自分で調べられない奴はやめた方がいいよ
0206デフォルトの名無しさん2007/04/22(日) 15:44:28
>>204
動画関連でこのスレが盛り上がったためしがないので、多分知ってる人は誰も見てない希ガス
0207デフォルトの名無しさん2007/04/22(日) 16:29:34
次のようなテーブル table1 があったとして、

key val
----------
 A  1
 A  2
 B  1
 B  3
 B  4
 C  1
 C  3

これから
{ 'A': [1, 2], 'B': [1, 3, 4], 'C': [1, 3] }
というdictをつくりたいんですが、一番スマートな方法はどのようになりますか。
今は次のようにしていますが、なんかもっといい方法がないかと思っています。

import MySQLdb
conn = MySQLdb.connect()
curosr = conn.cursor(cursorclass=MySQLdb.cursors.DictCursor)
cursor.execute("select key, val from table1")
lst = cursor.fetchall()
table = {}
for dct in lst:
 key, val = dct['key'], dct['val']
 values = table.get(key)
 if values is None:
  table[key] = values = []
 values.append(val)
0208デフォルトの名無しさん2007/04/22(日) 16:48:28
>>199
事実上1行のみ。;使えば多少は回避できるけど。
PyOneなんて半ばジョークのラッパースクリプトがあるが、
これ使うレベルのものになったら素直にファイルに書いた方がいいと思う。
0209デフォルトの名無しさん2007/04/22(日) 16:57:03
>>204
ググれカス
0210デフォルトの名無しさん2007/04/22(日) 17:30:36
file()とopen()って何が違うん
0211デフォルトの名無しさん2007/04/22(日) 17:48:58
名前
0212デフォルトの名無しさん2007/04/22(日) 17:56:22
>>207
少し短くはした。
>>> lst = ({'val': 1, 'key': 'A'}, {'val': 3, 'key': 'A'}, {'val': 2, 'key': 'B'})
>>> table = {}
>>> for dct in lst:
... key,val = dct['key'],dct['val']
... if not key in table.keys():
... table[key] = []
... table[key].append(val)
...
>>> table
{'A': [1, 3], 'B': [2]}
0213デフォルトの名無しさん2007/04/22(日) 17:58:07
インデント修正。
>>> for dct in lst:
...    key,val = dct['key'],dct['val']
...    if not key in table.keys():
...      table[key] = []
...    table[key].append(val)
0214デフォルトの名無しさん2007/04/22(日) 17:59:18
>>207
おれはこんなユーティリティ関数でどうにかしてる
self 使うのは癖
>>> def frompairs(sequence, multicast = False):
...     self = {}
...     for k, v in sequence:
...         if multicast:
...             self[k] = self.get(k, []) + [v, ]
...         else:
...             self[k] = v
...     return self
0215デフォルトの名無しさん2007/04/22(日) 18:11:52
>>> file == open

False
0216デフォルトの名無しさん2007/04/22(日) 18:13:56
python2.5だか3000だかでは、

hogedict[k].append(v) if k in hogedict else hogedict[k] = [v]

って書けるようになるの?


0217デフォルトの名無しさん2007/04/22(日) 18:26:04
以下のhgというスクリプトをコマンドプロンプトで単に「hg」と入力するだけで起動させるにはどうすればいいですか?

hg
---------
#!C:\applications\Python25\python.exe

from mercurial import commands

commands.run()
---------
0218デフォルトの名無しさん2007/04/22(日) 18:26:35
>>216
elseの右に文は無理
0219デフォルトの名無しさん2007/04/22(日) 18:27:28
>>213
∀key∀table∈dict((key in table.keys()) == (key in table))
0220デフォルトの名無しさん2007/04/22(日) 18:29:25
>>207
table = {}
cur1 = conn.cursor()
cur1.execute("SELECT key FROM table1")
for key, in cur1.fetchall():
 cur2 = conn.cursor()
 cur2.execute("SELECT val FROM table1 WHERE key = '%s'" % key)
 table[key] = [x for x, in cur2.fetchall()]

sqliteでしか試してないんで、動かなかったらごめん
0221デフォルトの名無しさん2007/04/22(日) 18:30:21
>>216
... else hogedict.__setitem__(k,[v])なら可能だけど明らかにspaghetti
0222デフォルトの名無しさん2007/04/22(日) 18:34:56
wikiの問題集ちょっと解いたので、興味ある人いたら見て見て下い
http://python.rdy.jp/wiki.cgi?page=%CC%E4%C2%EA%BD%B8

(あと、カテゴリ分けをちょっと変更
0223デフォルトの名無しさん2007/04/22(日) 18:51:11
ラムダとかコンプリヘンションって何のためにあるの?
読みにくくなってメリットないと思うけど。
0224デフォルトの名無しさん2007/04/22(日) 18:53:47
つ 夢
0225デフォルトの名無しさん2007/04/22(日) 18:55:50
>>223
読みにくくなるときは使わなければいいんですよ
0226デフォルトの名無しさん2007/04/22(日) 18:59:40
コンプリヘンションていうのは数学で言う、関数の像になってて、それが分かると読みやすいことこの上ない。
0227デフォルトの名無しさん2007/04/22(日) 19:02:18
要は単なるリテラル表現でしょ。別に特別な物じゃない。
0228デフォルトの名無しさん2007/04/22(日) 19:41:43
wikiの問題集をみて思った事、問題と答えが一緒に書いてあるのって変
問題と答えを別けた方がいいような気がする。
0229デフォルトの名無しさん2007/04/22(日) 19:50:31
問いを小項目にして、outlineを付けてみた。こんな感じでどう?
0230デフォルトの名無しさん2007/04/22(日) 19:51:17
女がでているからとかいう理由じゃないが
表紙で選ぶなら
実践Python〜文字列操作からWebアプリケーション開発まで
を買うな
0231デフォルトの名無しさん2007/04/22(日) 19:53:23
表紙で選ぶなよw
0232デフォルトの名無しさん2007/04/22(日) 19:59:51
鼠や蛇や馬に比べれば女のほうが確かにマシだな
0233デフォルトの名無しさん2007/04/22(日) 20:01:43
俺はヘビの方が萌える
0234デフォルトの名無しさん2007/04/22(日) 20:09:03
メガネという点も+だな
0235デフォルトの名無しさん2007/04/22(日) 20:13:06
おしえてください!

python -m CGIHTTPServe
を実行したら止まらなくなっちゃいました><
止め方を教えてください
0236デフォルトの名無しさん2007/04/22(日) 20:40:01
>>207
setdefault は?
>>> lst = [("A", 1),("A", 2),("B", 1),("B", 3),("B", 4),("C", 1),("C", 3),]
>>> table = {}
>>> for k, v in lst:
...   table.setdefault(k, []).append(v)
>>> table
{'A': [1, 2], 'C': [1, 3], 'B': [1, 3, 4]}
0237デフォルトの名無しさん2007/04/22(日) 20:48:24
>235
コマンドプロンプト閉じる
0238デフォルトの名無しさん2007/04/22(日) 21:54:30
現場で役に立たなそうな奴ばっかりだな
02392382007/04/22(日) 22:03:38
みんなごめんね☆

何か寂しくなっちゃって全然関係ないこと書き込みしちゃいました。

反省したので明日ボウズにしてきます。

(;_;)
0240デフォルトの名無しさん2007/04/22(日) 22:44:32
証拠写真うpれよ?w
0241デフォルトの名無しさん2007/04/22(日) 22:59:21
なりすましや騙りはキチガイへの第一歩だから気をつけろ。
ゴールデンウィーク前だからって気を抜かず仕事しろよ。
02422412007/04/22(日) 23:09:30
みんなごめんね☆

何か寂しくなっちゃって全然関係ないこと書き込みしちゃいました。

自分の精神状態が不安なので、明日キチガイ病院に入院します。

(;_;)
0243デフォルトの名無しさん2007/04/22(日) 23:10:14
>>241-242
さっさと消えろクズ
0244デフォルトの名無しさん2007/04/22(日) 23:10:53
>>204
pygameが良い気がする。
mpegを読めるはず(試したことは無いです)。

0245デフォルトの名無しさん2007/04/22(日) 23:52:32
つまり

hogedict[k] = hogedict[k]+[v] if k in hogedict else [v]

とかなら書けるのかな。
なんか裏の処理(リストがappendではなく再生成?)で無駄が発生しそうな気がするけど。
0246デフォルトの名無しさん2007/04/22(日) 23:55:25
>236

それイイ(・∀・)ね。
0247デフォルトの名無しさん2007/04/23(月) 00:47:37
>>235
それ、結構最初はどきっとするんだけど
実はCtrl + Breakか何かで止められる。

…正確なキーを忘れてしまったがorz
0248デフォルトの名無しさん2007/04/23(月) 02:10:33
ドキッ!!PythonだらけのCtrl+Alt+Del大会
0249デフォルトの名無しさん2007/04/23(月) 04:50:39
どこかの誰かが欲しいって言ってたアブストラクトそのものみたいなのが出来つつある模様。
http://www.python.org/dev/peps/pep-3119/
0250デフォルトの名無しさん2007/04/23(月) 06:45:48
>>207

>>> import itertools
>>> records
({'val': '1', 'key': 'A'}, {'val': '2', 'key': 'A'}, {'val': '1', 'key': 'B'}, {'val': '3', 'key': 'B'}, {'val': '4', 'key': 'B'}, {'val': '1', 'key': 'C'}, {'val': '3', 'key': 'C'})
>>> dict([(key, [v[1] for v in vals]) for key, vals in (itertools.groupby(sorted([(r['key'],r['val']) for r in records]),lambda x: x[0]))])
{'A': ['1', '2'], 'C': ['1', '3'], 'B': ['1', '3', '4']}
>>>

スマートかどうかの判断は任せるよ。
0251デフォルトの名無しさん2007/04/23(月) 12:47:15
sortedが不要、itertools.groupbyの前の括弧が不要
0252デフォルトの名無しさん2007/04/23(月) 13:07:14
もとのSQLでORDERED BYしない限りsortedは要るだろ。sortedなしでもうまくいくのは単なる幸運じゃないの?
■ このスレッドは過去ログ倉庫に格納されています