Pythonが嫌いな人のためのスレッドです。
■関連スレ
Rubyについて(アンチ専用) Part002
http://pc11.2ch.net/test/read.cgi/tech/1200210768/
探検
Pythonについて(アンチ専用)
■ このスレッドは過去ログ倉庫に格納されています
2008/02/21(木) 10:24:06
394デフォルトの名無しさん
2009/03/20(金) 17:33:56 Pythonのドキュメントは愛がたりない
Rubyみたいなドキュメントになってほしい
Rubyみたいなドキュメントになってほしい
395デフォルトの名無しさん
2009/03/20(金) 18:44:16 未完成な「Rubyリファレンスマニュアル刷新計画 chm版」というのを
ダウンロードしてみたけど、Rubyのほうがちゃんと気合い入ってそうだ。
ダウンロードしてみたけど、Rubyのほうがちゃんと気合い入ってそうだ。
396デフォルトの名無しさん
2009/03/20(金) 18:51:11 >>392
http://docs.python.org/search.html?q=defaultdict
2.6系からドキュメントシステムが変わりました…
Json のindexを構築して検索してるそうな…
sphinx + Pygments とかでぐぐると嬉しい
http://sphinx.pocoo.org/
http://docs.python.org/search.html?q=defaultdict
2.6系からドキュメントシステムが変わりました…
Json のindexを構築して検索してるそうな…
sphinx + Pygments とかでぐぐると嬉しい
http://sphinx.pocoo.org/
397デフォルトの名無しさん
2009/03/20(金) 19:46:37 左側の無駄なスペース無くして欲しいんだが
それにフォントもでかくなってて読みにくい
使い勝手は良くなったのかも知れないが
生理的に受け付けなくなりつつある
それにフォントもでかくなってて読みにくい
使い勝手は良くなったのかも知れないが
生理的に受け付けなくなりつつある
398デフォルトの名無しさん
2009/03/20(金) 19:48:17 もっとサクサク動くようにするべきだと思う
399デフォルトの名無しさん
2009/03/20(金) 23:12:49 オライリー本のヘビの絵がきもい。
400デフォルトの名無しさん
2009/03/20(金) 23:23:39 Twisted本はさらにひどい。
しかしそれはオライリーに文句を言うべき
しかしそれはオライリーに文句を言うべき
401デフォルトの名無しさん
2009/03/20(金) 23:38:10 >>397
俺もそれはウザいと思っていたのでスタイルシート弄った
俺もそれはウザいと思っていたのでスタイルシート弄った
402デフォルトの名無しさん
2009/03/21(土) 00:36:31 前は気軽にプリントアウト出来てたのに
403デフォルトの名無しさん
2009/03/25(水) 05:04:28 >401
こういう時、ユーザスタイルシートって有難いな
こういう時、ユーザスタイルシートって有難いな
404デフォルトの名無しさん
2009/04/10(金) 08:27:17405デフォルトの名無しさん
2009/04/29(水) 06:08:22 pythonは速いと聞いたので覚えようと思ったけど文法が訳ワカメで難しすぎて無理
もっと、こっからここまでをバシっと決めてくれないかなぁ
もっと、こっからここまでをバシっと決めてくれないかなぁ
406デフォルトの名無しさん
2009/04/29(水) 12:54:20 Cにしとけ
407デフォルトの名無しさん
2009/04/29(水) 19:42:51 早いのがいいならFORTRANだろ
408デフォルトの名無しさん
2009/05/02(土) 01:48:08409デフォルトの名無しさん
2009/05/02(土) 12:18:35 endがなくてキモい
410デフォルトの名無しさん
2009/05/02(土) 12:49:56 Pascal信者乙
411デフォルトの名無しさん
2009/05/02(土) 18:43:36 Pascal 信者であれば begin, end が無いという
Ruby 信者でしょ
Ruby 信者でしょ
412デフォルトの名無しさん
2009/05/05(火) 22:06:13 行の開始位置が構造に関わるとか
COBOLかFORTRAN並みに古すぎとか
思ってたけど慣れるとなんでもない
endの方がきもい
漏れはRubyでも{}使う派なんだけど
Rubyは{}じゃだめでdo〜endでしか書けないケースが結構ありすぎ
COBOLかFORTRAN並みに古すぎとか
思ってたけど慣れるとなんでもない
endの方がきもい
漏れはRubyでも{}使う派なんだけど
Rubyは{}じゃだめでdo〜endでしか書けないケースが結構ありすぎ
413デフォルトの名無しさん
2009/05/05(火) 23:27:06414デフォルトの名無しさん
2009/05/27(水) 11:52:20 > Rubyは{}じゃだめでdo〜endでしか書けないケースが結構ありすぎ
逆じゃないか?
Rubyの見栄え上do〜endのほうが良いなぁと思うのに、{}じゃないと書けないケースが多いと思う
逆じゃないか?
Rubyの見栄え上do〜endのほうが良いなぁと思うのに、{}じゃないと書けないケースが多いと思う
415デフォルトの名無しさん
2009/05/27(水) 11:58:10 多分個人のコーディングの癖(好むメソッドの組み合わせパターン)で
違ってくると思う。
違ってくると思う。
416デフォルトの名無しさん
2009/05/27(水) 13:38:02417デフォルトの名無しさん
2009/05/27(水) 17:06:12 >>409
end = Noneと書けばendが書けるよ
end = Noneと書けばendが書けるよ
418デフォルトの名無しさん
2009/05/27(水) 18:47:44 pass で閉じてる漏れは勝ち組み
419デフォルトの名無しさん
2009/05/28(木) 10:06:56420デフォルトの名無しさん
2009/05/28(木) 19:01:04 pythonはforが大杉。
421デフォルトの名無しさん
2009/05/28(木) 19:29:27 安置というより無知を曝すスレだな
422デフォルトの名無しさん
2009/06/08(月) 03:20:10 pythonスレはアforが大杉
423デフォルトの名無しさん
2009/06/08(月) 03:21:36 自愛するべき
424デフォルトの名無しさん
2009/06/08(月) 11:45:51 >>420
for で充分だから ブロック構文いらない。
Ruby厨はよく Pythonには○○が無いって叩くけど、大抵そういう機能は
Python-Idea ML で必要・不要が議論された結果不要と判断されている
ので、その機能が無くても同じ生産性をPythonは既に実現している。
for で充分だから ブロック構文いらない。
Ruby厨はよく Pythonには○○が無いって叩くけど、大抵そういう機能は
Python-Idea ML で必要・不要が議論された結果不要と判断されている
ので、その機能が無くても同じ生産性をPythonは既に実現している。
425デフォルトの名無しさん
2009/06/08(月) 13:22:44 for多すぎって[ ]の中じゃないの?
426デフォルトの名無しさん
2009/06/08(月) 20:46:12 >>424
そうでもないだろ。
Pythonの配列操作がRubyと比べて面倒くさい
ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
それよりPythonはsuperのキモさをなんとかしてくれんかいのう。
なんでsuper()に親クラス名を指定しなきゃいかんの?ba
そうでもないだろ。
Pythonの配列操作がRubyと比べて面倒くさい
ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
それよりPythonはsuperのキモさをなんとかしてくれんかいのう。
なんでsuper()に親クラス名を指定しなきゃいかんの?ba
427デフォルトの名無しさん
2009/06/08(月) 21:00:08 >>426
multi-inheritence dakara
multi-inheritence dakara
428デフォルトの名無しさん
2009/06/08(月) 21:06:58429デフォルトの名無しさん
2009/06/08(月) 21:07:27 >>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
つ '-'.join(["%s"%(x) for x in sorted(a, reverse=True)])
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
つ '-'.join(["%s"%(x) for x in sorted(a, reverse=True)])
430デフォルトの名無しさん
2009/06/08(月) 21:08:35 私Ruby厨だけどsuperに関しては
superとsuper()で引数が違ってくるRubyの方がキモイと思う
superとsuper()で引数が違ってくるRubyの方がキモイと思う
431デフォルトの名無しさん
2009/06/08(月) 21:13:13 >>426
> なんでsuper()に親クラス名を指定しなきゃいかんの?ba
Smalltalk系のようにsuperがcaller側のmethodのbindに依存するほうが
よほど言語設計として汚ないと思うが?
> なんでsuper()に親クラス名を指定しなきゃいかんの?ba
Smalltalk系のようにsuperがcaller側のmethodのbindに依存するほうが
よほど言語設計として汚ないと思うが?
432デフォルトの名無しさん
2009/06/08(月) 22:07:31433デフォルトの名無しさん
2009/06/08(月) 22:15:57 明示的なだけで汚くはないだろ
多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になるし
Python3からは引数省略してsuper().methできるらしいけど
多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になるし
Python3からは引数省略してsuper().methできるらしいけど
434デフォルトの名無しさん
2009/06/08(月) 22:30:34 >>433
>明示的なだけで汚くはないだろ
明示しなきゃいけないんだから汚いだろー
なんで抽象化されてないのさ
>多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になるし
は?そんなのふつうのメソッド呼び出しでも一緒じゃん
class A(object):
def f(self): print 'A'
class B(object):
def f(self): print 'B'
class X(A, B):
def g(self):
self.f() # どの親クラスのメソッド呼ぶのか曖昧なの?ねえPythonってそうなの?
ふつうのメソッド呼び出しで行なっているのと同じルールを使って、親クラスのメソッドを呼べばいいだけじゃん。
もしPythonが本当に『どの親クラスのメソッド呼ぶのかさえ曖昧になる』んだったら、
もうsuper関係なしに、オブジェクト指向言語として失格だろwwwww
>Python3からは引数省略してsuper().methできるらしいけど
やっぱり多重継承関係ないじゃないかwwwww
>>433は2行目で書いたことを3行目で忘れてるおばかさんーwwwww
>明示的なだけで汚くはないだろ
明示しなきゃいけないんだから汚いだろー
なんで抽象化されてないのさ
>多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になるし
は?そんなのふつうのメソッド呼び出しでも一緒じゃん
class A(object):
def f(self): print 'A'
class B(object):
def f(self): print 'B'
class X(A, B):
def g(self):
self.f() # どの親クラスのメソッド呼ぶのか曖昧なの?ねえPythonってそうなの?
ふつうのメソッド呼び出しで行なっているのと同じルールを使って、親クラスのメソッドを呼べばいいだけじゃん。
もしPythonが本当に『どの親クラスのメソッド呼ぶのかさえ曖昧になる』んだったら、
もうsuper関係なしに、オブジェクト指向言語として失格だろwwwww
>Python3からは引数省略してsuper().methできるらしいけど
やっぱり多重継承関係ないじゃないかwwwww
>>433は2行目で書いたことを3行目で忘れてるおばかさんーwwwww
435デフォルトの名無しさん
2009/06/09(火) 00:19:05 ようやくアンチスレらしくなって妙にうれしい
436デフォルトの名無しさん
2009/06/09(火) 01:58:52 >>434
そうだね、だから Python 3.0 では super() に self を明示しなくても良くなるよ。
今の Python は、 Python 2.2 までの古いクラスと新しいクラスが混在していて、
後方互換性の為には明示的にクラス名を書かないといけないの。
そうだね、だから Python 3.0 では super() に self を明示しなくても良くなるよ。
今の Python は、 Python 2.2 までの古いクラスと新しいクラスが混在していて、
後方互換性の為には明示的にクラス名を書かないといけないの。
437デフォルトの名無しさん
2009/06/09(火) 02:16:01 古いクラスと新しいクラスが混在って要・不要が議論されたあげくにそれか?
自慢げに語ることじゃないだろ。 よほど言語設計として汚ないと思うが?
自慢げに語ることじゃないだろ。 よほど言語設計として汚ないと思うが?
438デフォルトの名無しさん
2009/06/09(火) 02:22:03 2.xまで混在
3は新だけ
3は新だけ
439デフォルトの名無しさん
2009/06/09(火) 03:15:41 >>437
Rubyとちがって、過去の資産を大切にするからね。
後方互換性を切る Py3k も数年がかりのプロジェクトになる。
新クラスは、必要と判断されたから導入された。でも、後方互換性の為に
旧クラスは残されている。
ruby の メソッドチェーンやブロック構文は、Pythonに導入しても「一部の人が
気持ちいい」とか「ときどき数タイプ減らせる」程度の効果しか認められないから
Pythonには導入されない。
Rubyとちがって、過去の資産を大切にするからね。
後方互換性を切る Py3k も数年がかりのプロジェクトになる。
新クラスは、必要と判断されたから導入された。でも、後方互換性の為に
旧クラスは残されている。
ruby の メソッドチェーンやブロック構文は、Pythonに導入しても「一部の人が
気持ちいい」とか「ときどき数タイプ減らせる」程度の効果しか認められないから
Pythonには導入されない。
440デフォルトの名無しさん
2009/06/09(火) 03:20:53 >>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
メソッドチェーンになれたRubyistがメソッドチェーンを無いことを反射的に
批判しているだけだろ。
文を分けないで関数を無制限にゴチャゴチャ繋げるのはPythonicではない。
一息に書いて良いのは内包表記で簡潔に書ける範囲までで、それ以上は
文を分けるべき。文を分けたることによって数タイプ増えるが、その分可視性は
向上するので、トータルの生産性に大きな差は無い。それなら、すっきりした
書き方だけを使うのが Pythonic way.
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
メソッドチェーンになれたRubyistがメソッドチェーンを無いことを反射的に
批判しているだけだろ。
文を分けないで関数を無制限にゴチャゴチャ繋げるのはPythonicではない。
一息に書いて良いのは内包表記で簡潔に書ける範囲までで、それ以上は
文を分けるべき。文を分けたることによって数タイプ増えるが、その分可視性は
向上するので、トータルの生産性に大きな差は無い。それなら、すっきりした
書き方だけを使うのが Pythonic way.
441デフォルトの名無しさん
2009/06/09(火) 04:00:06 久々に伸びてると思ったらなんじゃこりゃ
442デフォルトの名無しさん
2009/06/09(火) 04:41:11443デフォルトの名無しさん
2009/06/09(火) 04:43:34 >>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
単に初学者が前に習った言語の作法にひきずられて
今学んでいる言語の流儀に逆らってるだけに見える。
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
単に初学者が前に習った言語の作法にひきずられて
今学んでいる言語の流儀に逆らってるだけに見える。
444デフォルトの名無しさん
2009/06/09(火) 05:03:16 rubyやJavaのメソッドチェーン使うときにいつも気になるのは
途中でメソッドの戻り値がぬるぽになるんじゃないかってところ
だからpythonで文を分けて毎回if not hogeしている漏れは勝ち組
途中でメソッドの戻り値がぬるぽになるんじゃないかってところ
だからpythonで文を分けて毎回if not hogeしている漏れは勝ち組
445デフォルトの名無しさん
2009/06/09(火) 05:13:49 >なんか今更この記事にコメントが付きだしたのですが、どこかで紹介されたのでしょうか?
笑える
>>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
ruby
a.sort().reverse().map{|x| x.to_s}.join('-')
python
'-'.join(map(lambda x:str(x), reversed(sorted(a))))
'-'.join(str(x) for x in reveresed(sorted(a)))
'-'.join('%s'%(x) for x in sorted(a, reverse=True))
確かpythonって「やりかたはひとつ」を売りにしてなかったっけ?
笑える
>>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
ruby
a.sort().reverse().map{|x| x.to_s}.join('-')
python
'-'.join(map(lambda x:str(x), reversed(sorted(a))))
'-'.join(str(x) for x in reveresed(sorted(a)))
'-'.join('%s'%(x) for x in sorted(a, reverse=True))
確かpythonって「やりかたはひとつ」を売りにしてなかったっけ?
446デフォルトの名無しさん
2009/06/09(火) 07:12:26 >>436
なるほど、それが理由なのか。
じゃあ最初にオブジェクト指向機能を導入した時の設計が間違ってたんだな。
とりあえず「多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になる」と言いはるバカは消えろwww
>>439
>Rubyとちがって、過去の資産を大切にするからね。
ちーがーうー、最初の設計が間違っていたから仕方なく過去を引きずっているだけwww
それを「過去の資産を大切に」とかバカまるだしwww
ほんとに大切にするなら3.0でも互換性をとっとけwww
>>442
>同じ表現式の意味がバインドされているクラスによって変化するのは美しくないだろ。
ほんとにそう思う?ほんとにそう思うなら、親クラス名が省略できるようになった3.0は美しくないの?
442にとっては3.0の仕様が美しくないそうだよwwww またバカ丸出しwwwwww
Pythonistaは442みたいなのをだまらせとけやwww 身内の恥さらしだぞwwwwww
なるほど、それが理由なのか。
じゃあ最初にオブジェクト指向機能を導入した時の設計が間違ってたんだな。
とりあえず「多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になる」と言いはるバカは消えろwww
>>439
>Rubyとちがって、過去の資産を大切にするからね。
ちーがーうー、最初の設計が間違っていたから仕方なく過去を引きずっているだけwww
それを「過去の資産を大切に」とかバカまるだしwww
ほんとに大切にするなら3.0でも互換性をとっとけwww
>>442
>同じ表現式の意味がバインドされているクラスによって変化するのは美しくないだろ。
ほんとにそう思う?ほんとにそう思うなら、親クラス名が省略できるようになった3.0は美しくないの?
442にとっては3.0の仕様が美しくないそうだよwwww またバカ丸出しwwwwww
Pythonistaは442みたいなのをだまらせとけやwww 身内の恥さらしだぞwwwwww
447デフォルトの名無しさん
2009/06/09(火) 07:45:28 雑草が増えたな
448デフォルトの名無しさん
2009/06/09(火) 08:14:19 >>445
>python
>'-'.join(map(lambda x:str(x), reversed(sorted(a))))
>'-'.join(str(x) for x in reveresed(sorted(a)))
>'-'.join('%s'%(x) for x in sorted(a, reverse=True))
>
>確かpythonって「やりかたはひとつ」を売りにしてなかったっけ?
厳密にひとつ、というわけじゃなくて、だいたい一つ、ぐらいの意味でいいんじゃない?
これくらいだったら十分許容範囲だろ。許してやれよ。
> ruby
> a.sort().reverse().map{|x| x.to_s}.join('-')
これは各々の処理が左から右にきれいに流れるから読みやすいんだよね。
Pythonのは関数呼び出しが入れ子になっているからわかりずらい。
Python狂信者はこの事実を認めようとしないだろうけど。
>>440
>一息に書いて良いのは内包表記で簡潔に書ける範囲までで、それ以上は
>文を分けるべき。
それはPython限定の話だよね? 一息に書きにくい言語はそうすべきだけど、
一息にかける言語だったらそんなことに縛られる必要はまるでない。
>> 443
> 単に初学者が前に習った言語の作法にひきずられて
> 今学んでいる言語の流儀に逆らってるだけに見える。
こういうやつがいるかぎりは、争いはいつまでたっても終わんないだろうね。
>python
>'-'.join(map(lambda x:str(x), reversed(sorted(a))))
>'-'.join(str(x) for x in reveresed(sorted(a)))
>'-'.join('%s'%(x) for x in sorted(a, reverse=True))
>
>確かpythonって「やりかたはひとつ」を売りにしてなかったっけ?
厳密にひとつ、というわけじゃなくて、だいたい一つ、ぐらいの意味でいいんじゃない?
これくらいだったら十分許容範囲だろ。許してやれよ。
> ruby
> a.sort().reverse().map{|x| x.to_s}.join('-')
これは各々の処理が左から右にきれいに流れるから読みやすいんだよね。
Pythonのは関数呼び出しが入れ子になっているからわかりずらい。
Python狂信者はこの事実を認めようとしないだろうけど。
>>440
>一息に書いて良いのは内包表記で簡潔に書ける範囲までで、それ以上は
>文を分けるべき。
それはPython限定の話だよね? 一息に書きにくい言語はそうすべきだけど、
一息にかける言語だったらそんなことに縛られる必要はまるでない。
>> 443
> 単に初学者が前に習った言語の作法にひきずられて
> 今学んでいる言語の流儀に逆らってるだけに見える。
こういうやつがいるかぎりは、争いはいつまでたっても終わんないだろうね。
449デフォルトの名無しさん
2009/06/09(火) 08:15:08 ある種の若い男の子にありがちな語り口だよね。
わかるまいわかるまいと頑張りつつ、わからせる気も無い、のっけからの平行線狙いって。
場を味方につけつつ展開しないと、単に「こいつ一人が理解力無いだけ」って判断されて
オシマイなんだけど。
わかるまいわかるまいと頑張りつつ、わからせる気も無い、のっけからの平行線狙いって。
場を味方につけつつ展開しないと、単に「こいつ一人が理解力無いだけ」って判断されて
オシマイなんだけど。
450デフォルトの名無しさん
2009/06/09(火) 08:17:25 one liner書きにくすぎ
インデント氏ね
インデント氏ね
451デフォルトの名無しさん
2009/06/09(火) 08:47:16 >>448
> > ruby
> > a.sort().reverse().map{|x| x.to_s}.join('-')
>
> これは各々の処理が左から右にきれいに流れるから読みやすいんだよね。
> Pythonのは関数呼び出しが入れ子になっているからわかりずらい。
> Python狂信者はこの事実を認めようとしないだろうけど。
python
'-'.join(["%s"%(x) for x in sorted(a, reverse=True)])
これは全体の処理がトップダウンにきれいに流れるから読みやすいんだよね。
rubyのように処理順にすると最後にならないと全体の仕事がわからずに読み進めなきゃならない。
俺はruby狂信者なんてレッテルを貼ったりしないけど。
> > ruby
> > a.sort().reverse().map{|x| x.to_s}.join('-')
>
> これは各々の処理が左から右にきれいに流れるから読みやすいんだよね。
> Pythonのは関数呼び出しが入れ子になっているからわかりずらい。
> Python狂信者はこの事実を認めようとしないだろうけど。
python
'-'.join(["%s"%(x) for x in sorted(a, reverse=True)])
これは全体の処理がトップダウンにきれいに流れるから読みやすいんだよね。
rubyのように処理順にすると最後にならないと全体の仕事がわからずに読み進めなきゃならない。
俺はruby狂信者なんてレッテルを貼ったりしないけど。
452デフォルトの名無しさん
2009/06/09(火) 09:15:13 >>445
その例だと、一番目は lambda が不要で
'-'.join(map(str, sorted(a, reverse=True))) # もしくは itertools.imap
二番目は reversed が一つ余計で
'-'.join(str(x) for x in sorted(a, reverse=True))
三番目の % 記法を無理やり使うのは無いな。少なくとも (x,) としないと、 x 自体がタプル
だったときに問題が起こる。
その例だと、一番目は lambda が不要で
'-'.join(map(str, sorted(a, reverse=True))) # もしくは itertools.imap
二番目は reversed が一つ余計で
'-'.join(str(x) for x in sorted(a, reverse=True))
三番目の % 記法を無理やり使うのは無いな。少なくとも (x,) としないと、 x 自体がタプル
だったときに問題が起こる。
453デフォルトの名無しさん
2009/06/09(火) 09:16:30454デフォルトの名無しさん
2009/06/09(火) 09:24:33 >>448
> > ruby
> > a.sort().reverse().map{|x| x.to_s}.join('-')
>
> これは各々の処理が左から右にきれいに流れるから読みやすいんだよね。
> Pythonのは関数呼び出しが入れ子になっているからわかりずらい。
> Python狂信者はこの事実を認めようとしないだろうけど。
「左から右に」っていうのは Ruby厨がよく言うけど、メソッドチェーンのとき「だけ」
左から右なんだよね。なんで代入は右から左のままなの?代入演算子を => に
すれば、
s = a.sort.reverse
s.map{|x| x.to_s}.join('-')
という風に代入が混じっていても、
a.sort.reverse=>s.map{|x| x.to_s}.join('-')
って書けるのにさ。
結局、Matzの「あ、こう書けるとおもしろいんじゃね?」というのに後付けで読みやすい
とか言っちゃってる気がしてならない。
あと、リストの要素を「*文字列として* 連結する」というメソッドがリストのメソッドなのは
どうなんだ? Python の ''.join() の方が、文字列に関する機能は文字列のメソッドという
方が分かり易いし正しいと思うぞ。
> > ruby
> > a.sort().reverse().map{|x| x.to_s}.join('-')
>
> これは各々の処理が左から右にきれいに流れるから読みやすいんだよね。
> Pythonのは関数呼び出しが入れ子になっているからわかりずらい。
> Python狂信者はこの事実を認めようとしないだろうけど。
「左から右に」っていうのは Ruby厨がよく言うけど、メソッドチェーンのとき「だけ」
左から右なんだよね。なんで代入は右から左のままなの?代入演算子を => に
すれば、
s = a.sort.reverse
s.map{|x| x.to_s}.join('-')
という風に代入が混じっていても、
a.sort.reverse=>s.map{|x| x.to_s}.join('-')
って書けるのにさ。
結局、Matzの「あ、こう書けるとおもしろいんじゃね?」というのに後付けで読みやすい
とか言っちゃってる気がしてならない。
あと、リストの要素を「*文字列として* 連結する」というメソッドがリストのメソッドなのは
どうなんだ? Python の ''.join() の方が、文字列に関する機能は文字列のメソッドという
方が分かり易いし正しいと思うぞ。
455デフォルトの名無しさん
2009/06/09(火) 12:21:12 末尾に!を付けると代入になるとかいいんじゃね
456デフォルトの名無しさん
2009/06/09(火) 12:31:38 >>454
「左から右」が好きなのは最近の人っつかRails厨に多い気がする
(s = a.sort.reverse).map{|x| x.to_s}.join('-')で別に気にならないな
理屈は後付けで結局Matzの思いつきが多いのは然りごもっとも
> あと、リストの要素を「*文字列として* 連結する」というメソッドがリストのメソッドなのは
num.to_sとかの延長で考えると、別にいいんじゃねと思ってる
機能よりは主体がどっちなのかで分けてる感じかな、よくわからんが
「左から右」が好きなのは最近の人っつかRails厨に多い気がする
(s = a.sort.reverse).map{|x| x.to_s}.join('-')で別に気にならないな
理屈は後付けで結局Matzの思いつきが多いのは然りごもっとも
> あと、リストの要素を「*文字列として* 連結する」というメソッドがリストのメソッドなのは
num.to_sとかの延長で考えると、別にいいんじゃねと思ってる
機能よりは主体がどっちなのかで分けてる感じかな、よくわからんが
457デフォルトの名無しさん
2009/06/09(火) 12:40:48 *リスト*を連結するのがstrのメソッドなのはいいのか?
458デフォルトの名無しさん
2009/06/09(火) 13:06:10 リストの連結(リストをいくつか受け取って連結したリストを返す)メソッドがstrに定義されてる
言語なんてあるのか?
言語なんてあるのか?
459デフォルトの名無しさん
2009/06/09(火) 14:29:46 >>444
がっ!
がっ!
460デフォルトの名無しさん
2009/06/09(火) 14:37:02461デフォルトの名無しさん
2009/06/09(火) 14:38:58 > ruby
> a.sort().reverse().map{|x| x.to_s}.join('-')
これ成城に動いてるときはいいんだけど
バグが出たら何が原因か分かりづらいぜ?
> a.sort().reverse().map{|x| x.to_s}.join('-')
これ成城に動いてるときはいいんだけど
バグが出たら何が原因か分かりづらいぜ?
462デフォルトの名無しさん
2009/06/09(火) 14:41:05 >>454
>結局、Matzの「あ、こう書けるとおもしろいんじゃね?」というのに後付けで読みやすい
>とか言っちゃってる気がしてならない。
そういう理由だったの?
Smalltalk から影響受けたんだと思ってたお
>結局、Matzの「あ、こう書けるとおもしろいんじゃね?」というのに後付けで読みやすい
>とか言っちゃってる気がしてならない。
そういう理由だったの?
Smalltalk から影響受けたんだと思ってたお
463デフォルトの名無しさん
2009/06/09(火) 14:42:34 >>457
リスト以外でも、イテレートできればなんでも連結できるよ?
リスト以外でも、イテレートできればなんでも連結できるよ?
464デフォルトの名無しさん
2009/06/09(火) 14:43:05 >>454
>「左から右に」っていうのは Ruby厨がよく言うけど、メソッドチェーンのとき「だけ」左から右なんだよね。
なんですべてを左から右にしようとしてんの?別に右から左でもいいけどさ、個々の処理がきれいに流れていることが重要なんじゃん。
unixのコマンドラインでパイプを使って処理を連結する感覚と一緒。Pythonとかだとそれがないってだけ。
>なんで代入は右から左のままなの?代入演算子を => にすれば、
>s = a.sort.reverse
>s.map{|x| x.to_s}.join('-')
>という風に代入が混じっていても、
>a.sort.reverse=>s.map{|x| x.to_s}.join('-')
>って書けるのにさ。
そんなふうに書くわけないじゃん。
(s = a.sort.reverse).map{|x| x.to_s}.join('-')
でいいだろ。自分で書いてて気づかないのか?
>結局、Matzの「あ、こう書けるとおもしろいんじゃね?」というのに後付けで読みやすい
>とか言っちゃってる気がしてならない。
いや実際読みやすいだろ。
>あと、リストの要素を「*文字列として* 連結する」というメソッドがリストのメソッドなのはどうなんだ?
連結した結果として文字列以外になんかあるか?joinは*要素を連結して*文字列として返すメソッドなんだから、リストのメソッドで何にもおかしくない。
> Python の ''.join() の方が、文字列に関する機能は文字列のメソッドという方が分かり易いし正しいと思うぞ。
戻り値が文字列だからといって、要素を連結する機能を文字列に関する機能と考えるほうがどうかしてる。
joinはあくまで「要素を連結する」ためのメソッド。リストのメソッドで何が悪い。
>>452
おれもlambda x: str(x) とか書いてた!これはいらないのか!ちょー参考になった。さんくす。
>「左から右に」っていうのは Ruby厨がよく言うけど、メソッドチェーンのとき「だけ」左から右なんだよね。
なんですべてを左から右にしようとしてんの?別に右から左でもいいけどさ、個々の処理がきれいに流れていることが重要なんじゃん。
unixのコマンドラインでパイプを使って処理を連結する感覚と一緒。Pythonとかだとそれがないってだけ。
>なんで代入は右から左のままなの?代入演算子を => にすれば、
>s = a.sort.reverse
>s.map{|x| x.to_s}.join('-')
>という風に代入が混じっていても、
>a.sort.reverse=>s.map{|x| x.to_s}.join('-')
>って書けるのにさ。
そんなふうに書くわけないじゃん。
(s = a.sort.reverse).map{|x| x.to_s}.join('-')
でいいだろ。自分で書いてて気づかないのか?
>結局、Matzの「あ、こう書けるとおもしろいんじゃね?」というのに後付けで読みやすい
>とか言っちゃってる気がしてならない。
いや実際読みやすいだろ。
>あと、リストの要素を「*文字列として* 連結する」というメソッドがリストのメソッドなのはどうなんだ?
連結した結果として文字列以外になんかあるか?joinは*要素を連結して*文字列として返すメソッドなんだから、リストのメソッドで何にもおかしくない。
> Python の ''.join() の方が、文字列に関する機能は文字列のメソッドという方が分かり易いし正しいと思うぞ。
戻り値が文字列だからといって、要素を連結する機能を文字列に関する機能と考えるほうがどうかしてる。
joinはあくまで「要素を連結する」ためのメソッド。リストのメソッドで何が悪い。
>>452
おれもlambda x: str(x) とか書いてた!これはいらないのか!ちょー参考になった。さんくす。
465デフォルトの名無しさん
2009/06/09(火) 14:44:06 >>458
Java
Java
466デフォルトの名無しさん
2009/06/09(火) 14:47:34 python は lisp と謂われる所以ですな
467デフォルトの名無しさん
2009/06/09(火) 14:48:38468デフォルトの名無しさん
2009/06/09(火) 14:49:24 理想ばっか語ってても仕方ないよ
469デフォルトの名無しさん
2009/06/09(火) 14:51:33 >>464
例えば、xhtml を動的に生成する場合、
data = [tag.P(t) for t in "foo bar baz".split()]
contents = tag.HR.join(data)
print str(contents)
で、
<p>foo</p>
<hr/>
<p>bar</p>
<hr/>
<p>baz</p>
とか。シーケンシャルな構造で要素をセパレータを挟みながら並べたいってのは
文字列処理にしか出てこないとは限らないだろ。
例えば、xhtml を動的に生成する場合、
data = [tag.P(t) for t in "foo bar baz".split()]
contents = tag.HR.join(data)
print str(contents)
で、
<p>foo</p>
<hr/>
<p>bar</p>
<hr/>
<p>baz</p>
とか。シーケンシャルな構造で要素をセパレータを挟みながら並べたいってのは
文字列処理にしか出てこないとは限らないだろ。
470デフォルトの名無しさん
2009/06/09(火) 14:53:58 >>467
それ以上に複雑になったら、mapではなくてリスト内包を使う。
リスト内包でもすっきり書けないくらい複雑になったら、ローカルで関数を定義して
それを map する。
Pythonの関数は普通の変数と同じ名前空間に存在しているので扱いが楽。
それ以上に複雑になったら、mapではなくてリスト内包を使う。
リスト内包でもすっきり書けないくらい複雑になったら、ローカルで関数を定義して
それを map する。
Pythonの関数は普通の変数と同じ名前空間に存在しているので扱いが楽。
471デフォルトの名無しさん
2009/06/09(火) 15:01:41 >>464
> (s = a.sort.reverse).map{|x| x.to_s}.join('-')
これ、動作を追おうとすると、 a.sort.reverse までは左から右によんで、
そっからいきなり一番左に行って、代入結果に対してさらに右にとんで
処理しているんだよね?
俺は「左から右」のメソッドチェーンがPythonicな書き方に比べて特に
読みやすいとは思わないけど、もし「左から右に流れるように処理が連結
できる」のが本当に読みやすいのであれば、代入式も代入結果が式の値
なんだから代入結果を右に持っていくべきだよね。
Ruby厨ってRubyこそ正義って思って思考停止してない?
> (s = a.sort.reverse).map{|x| x.to_s}.join('-')
これ、動作を追おうとすると、 a.sort.reverse までは左から右によんで、
そっからいきなり一番左に行って、代入結果に対してさらに右にとんで
処理しているんだよね?
俺は「左から右」のメソッドチェーンがPythonicな書き方に比べて特に
読みやすいとは思わないけど、もし「左から右に流れるように処理が連結
できる」のが本当に読みやすいのであれば、代入式も代入結果が式の値
なんだから代入結果を右に持っていくべきだよね。
Ruby厨ってRubyこそ正義って思って思考停止してない?
472デフォルトの名無しさん
2009/06/09(火) 15:12:20 pythonのlist.sort(), list.reverse()が処理後のリストを返さない理由を2文字で教えてください。
473デフォルトの名無しさん
2009/06/09(火) 15:15:00 >>471
464ではないし、Ruby触ったことないけど・・・
それは「コンピュータが処理をする順序の話」に寄りすぎちゃってない?
これって、「人間が動作の流れを目で追う話」だよね?
俺が「一人の人間として」コードがやっていることを目で追うとき、
代入というのは「○○に××を代入する」行為であると捉えているから、
このコードは十分「左から右」になってるなぁ。
sにaをソートしてひっくり返したものを代入して、mapしてjoinする、って読む。
464ではないし、Ruby触ったことないけど・・・
それは「コンピュータが処理をする順序の話」に寄りすぎちゃってない?
これって、「人間が動作の流れを目で追う話」だよね?
俺が「一人の人間として」コードがやっていることを目で追うとき、
代入というのは「○○に××を代入する」行為であると捉えているから、
このコードは十分「左から右」になってるなぁ。
sにaをソートしてひっくり返したものを代入して、mapしてjoinする、って読む。
474デフォルトの名無しさん
2009/06/09(火) 15:18:08475デフォルトの名無しさん
2009/06/09(火) 15:21:14 代入を右から左に「読む」という主張の人は、当然ながら
a = b = c = 10
みたいなコードは、「10をcに代入し、その値をbに代入し・・・」って読み方なんだよね。
俺はそうじゃなくて、「aとbとcに10を代入する」って読む。
この認識が「コンピュータの動き」と異なっていることはわかっているけど、
でも自分が「プログラムの動き」からも離れて強引に左から右に読んでる、とも思わない。
a = b = c = 10
みたいなコードは、「10をcに代入し、その値をbに代入し・・・」って読み方なんだよね。
俺はそうじゃなくて、「aとbとcに10を代入する」って読む。
この認識が「コンピュータの動き」と異なっていることはわかっているけど、
でも自分が「プログラムの動き」からも離れて強引に左から右に読んでる、とも思わない。
476デフォルトの名無しさん
2009/06/09(火) 15:21:47 >>471
>> (s = a.sort.reverse).map{|x| x.to_s}.join('-')
>これ、動作を追おうとすると、 a.sort.reverse までは左から右によんで、
>そっからいきなり一番左に行って、代入結果に対してさらに右にとんで
>処理しているんだよね?
いや、最初に「(s=」が目に入るからその時点で
脳内スタックに s の代入と s に対する次の
「).map」の準備が出来るから大丈夫
>> (s = a.sort.reverse).map{|x| x.to_s}.join('-')
>これ、動作を追おうとすると、 a.sort.reverse までは左から右によんで、
>そっからいきなり一番左に行って、代入結果に対してさらに右にとんで
>処理しているんだよね?
いや、最初に「(s=」が目に入るからその時点で
脳内スタックに s の代入と s に対する次の
「).map」の準備が出来るから大丈夫
477デフォルトの名無しさん
2009/06/09(火) 15:29:55 Pythonのjoinが文字列のメソッドとなっているのは、単にリストだけでなくタプルや文字列やジェネレータのように
繰り返し可能なものすべてを扱えるようにしているからだよね。
だからほんとは
join(iteratable, separator='')
という関数でよかったんじゃないの?
joinが文字列のメソッドだからすごく違和感があるけど、単なる組み込み関数として存在するなら、別に違和感なし。
join(['a', 'b', 'c'])
join(('a', 'b', 'c'))
join(x for x in 'abc')
繰り返し可能なものすべてを扱えるようにしているからだよね。
だからほんとは
join(iteratable, separator='')
という関数でよかったんじゃないの?
joinが文字列のメソッドだからすごく違和感があるけど、単なる組み込み関数として存在するなら、別に違和感なし。
join(['a', 'b', 'c'])
join(('a', 'b', 'c'))
join(x for x in 'abc')
478デフォルトの名無しさん
2009/06/09(火) 15:34:17 >>465
Javaのどのメソッド? Stringクラスにはないけど。
Javaのどのメソッド? Stringクラスにはないけど。
479デフォルトの名無しさん
2009/06/09(火) 15:36:29 (s = a.sort.reverse).map{|x| x.to_s}.join('-')
これを代入部分も含めたメソッドチェーン的に書き直すなら
s.assign(a.sort.reverse).map{|x| x.to_s}.join('-')
だろうね
これを代入部分も含めたメソッドチェーン的に書き直すなら
s.assign(a.sort.reverse).map{|x| x.to_s}.join('-')
だろうね
480デフォルトの名無しさん
2009/06/09(火) 15:38:11 >>472
ヒントください
ヒントください
481デフォルトの名無しさん
2009/06/09(火) 16:08:40 >>469
>シーケンシャルな構造で要素をセパレータを挟みながら並べたいってのは
>文字列処理にしか出てこないとは限らないだろ。
だったらなおさら文字列のメソッドにするべきじゃないだろ。
セパレータは文字列と限んないんだろ?joinを文字列のメソッドにしたら、セパレータは文字列限定じゃないか。
join(seq, sep='') のような組み込み関数にしとくべきだろ。
''.join()が文字列しか対象としてないのを忘れて「文字列処理にしか出てこないとは限らない」とかバカじゃねーの
>シーケンシャルな構造で要素をセパレータを挟みながら並べたいってのは
>文字列処理にしか出てこないとは限らないだろ。
だったらなおさら文字列のメソッドにするべきじゃないだろ。
セパレータは文字列と限んないんだろ?joinを文字列のメソッドにしたら、セパレータは文字列限定じゃないか。
join(seq, sep='') のような組み込み関数にしとくべきだろ。
''.join()が文字列しか対象としてないのを忘れて「文字列処理にしか出てこないとは限らない」とかバカじゃねーの
482デフォルトの名無しさん
2009/06/09(火) 16:26:14 map が map(func, list) の構造をしてるから
join(sep='', seq=[])
になってた方がいいかな
join(sep='', seq=[])
になってた方がいいかな
483デフォルトの名無しさん
2009/06/09(火) 16:27:37 それどこのreduce
484デフォルトの名無しさん
2009/06/09(火) 18:41:59 join = lambda x, y: y.join(map(str, x))
485デフォルトの名無しさん
2009/06/09(火) 20:06:44 すべてS式にすれば争いは起きないのに
486デフォルトの名無しさん
2009/06/09(火) 20:38:36487デフォルトの名無しさん
2009/06/09(火) 21:17:56 >>472
in-place なメソッドだから。
in-place なメソッドだから。
488デフォルトの名無しさん
2009/06/09(火) 21:21:16 >>477
文字列に限定しないメソッドにする場合、まず 「つなぐ」 が何かを
定義しないと行けない。join を処理前の iteratable と切り離すのは
全く問題ないが、つないだ後の形と切り離して扱うのは効率が悪い。
文字列に限定しないメソッドにする場合、まず 「つなぐ」 が何かを
定義しないと行けない。join を処理前の iteratable と切り離すのは
全く問題ないが、つないだ後の形と切り離して扱うのは効率が悪い。
489デフォルトの名無しさん
2009/06/09(火) 21:22:22490デフォルトの名無しさん
2009/06/09(火) 22:26:46 >>469
Python標準では str 以外で join() を実装しているのってあるの?
hogehoge.join(['a','b','c']) # hogehoge は何か
文字列以外の join() が用意されてないなら、469のは説得力を感じないなあ。
Python標準では str 以外で join() を実装しているのってあるの?
hogehoge.join(['a','b','c']) # hogehoge は何か
文字列以外の join() が用意されてないなら、469のは説得力を感じないなあ。
491デフォルトの名無しさん
2009/06/09(火) 22:58:11 >>490
少なくともUserStringは同型のjoinを持っているし、意味が違う "join" という
名前はスレッドの join であったり db の join であったりたくさんあるよ。
逆に、 str.join だと何か問題があるの?グローバルという特別な空間を
犯したり、リスト・タプル・その他すべてのイテレート可能型の名前空間に
文字列のための "join" メソッドをねじ込まないといけない理由は何?
少なくともUserStringは同型のjoinを持っているし、意味が違う "join" という
名前はスレッドの join であったり db の join であったりたくさんあるよ。
逆に、 str.join だと何か問題があるの?グローバルという特別な空間を
犯したり、リスト・タプル・その他すべてのイテレート可能型の名前空間に
文字列のための "join" メソッドをねじ込まないといけない理由は何?
492デフォルトの名無しさん
2009/06/09(火) 23:51:10 >>491
>少なくともUserStringは同型のjoinを持っているし、意味が違う "join" という
>名前はスレッドの join であったり db の join であったりたくさんあるよ。
意味の違うjoinをもってきてどうすんの?
今は hogehoge.join(seq) の形でリストやタプルを引数にとるものの話にきまってるだろ。
だれがスレッドのjoinの話をしてるの? Threadのjoinはlistに実装すべきだとかだれかいったの?
話をすりかえんなよ。元の話は "".join(list) より list.join("") のほうが自然かどうかという話だろうが。
listの要素を連結するメソッドが、listじゃなくてstrのメソッドになっているのがおかしいんじゃないかという話だ。
そこをおまえがセパレータが文字列じゃないjoin()もあるとか言い出したんだろ。
だからセパレータで文字列を使わないjoin()や、文字列以外での連結を行うjoin()は実際にあるのかと聞いたら、スレッドのjoinを挙げるなんて、バカすぎるわ。
リストやタプルの要素を連結する話なのに、スレッドやDBが関係あるわけないだろ。
「文字列以外の場合も考えられる」といっているけど、結局は具体例挙げられなくて、苦し紛れにjoinがつくものを挙げただけじゃんか。
おまえ反論したいだけだろ。「多重継承があるからsuperにはクラス名が必要」とか、いちいち理由をねつ造すんなよ。
つうかPythonistaはこんなやつほっとくなよ。Python界の恥さらしだろ。身内の恥は身内でなんとかしてくれ。
>少なくともUserStringは同型のjoinを持っているし、意味が違う "join" という
>名前はスレッドの join であったり db の join であったりたくさんあるよ。
意味の違うjoinをもってきてどうすんの?
今は hogehoge.join(seq) の形でリストやタプルを引数にとるものの話にきまってるだろ。
だれがスレッドのjoinの話をしてるの? Threadのjoinはlistに実装すべきだとかだれかいったの?
話をすりかえんなよ。元の話は "".join(list) より list.join("") のほうが自然かどうかという話だろうが。
listの要素を連結するメソッドが、listじゃなくてstrのメソッドになっているのがおかしいんじゃないかという話だ。
そこをおまえがセパレータが文字列じゃないjoin()もあるとか言い出したんだろ。
だからセパレータで文字列を使わないjoin()や、文字列以外での連結を行うjoin()は実際にあるのかと聞いたら、スレッドのjoinを挙げるなんて、バカすぎるわ。
リストやタプルの要素を連結する話なのに、スレッドやDBが関係あるわけないだろ。
「文字列以外の場合も考えられる」といっているけど、結局は具体例挙げられなくて、苦し紛れにjoinがつくものを挙げただけじゃんか。
おまえ反論したいだけだろ。「多重継承があるからsuperにはクラス名が必要」とか、いちいち理由をねつ造すんなよ。
つうかPythonistaはこんなやつほっとくなよ。Python界の恥さらしだろ。身内の恥は身内でなんとかしてくれ。
493デフォルトの名無しさん
2009/06/10(水) 00:04:54494デフォルトの名無しさん
2009/06/10(水) 00:11:35 RTFM
ttp://www.python.org/doc/faq/general/#why-is-join-a-string-method-instead-of-a-list-or-tuple-method
ttp://www.python.org/doc/faq/general/#why-is-join-a-string-method-instead-of-a-list-or-tuple-method
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 【テレビ】粗品「THE W」バッサリ「おもんない、レベル低い」審査員就任で「日テレが“血の海”に…」 [湛然★]
- 女も昔は精子だったんだな
- 【未確認生ハメ情報】安倍晋三が高市早苗氏とチョメチョメしていたという噂が囁かれる。 [928194223]
- 【画像】地方局の女子アナさん、朝からエッチなおパンツを全国放送されてしまう😍
- 最近朝に暇だからラヴィット!見てるけど(´・ω・`)
- 【悲報】女さん「ハローワークで仕事を探してる3-40代の中年男性いるでしょ。あれ何?」 [483447288]
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
