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


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

Pythonについて(アンチ専用)



1 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 10:24:06 .net]
Pythonが嫌いな人のためのスレッドです。

■関連スレ
Rubyについて(アンチ専用) Part002
pc11.2ch.net/test/read.cgi/tech/1200210768/

423 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 03:21:36 .net]
自愛するべき

424 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 11:45:51 .net]
>>420
for で充分だから ブロック構文いらない。

Ruby厨はよく Pythonには○○が無いって叩くけど、大抵そういう機能は
Python-Idea ML で必要・不要が議論された結果不要と判断されている
ので、その機能が無くても同じ生産性をPythonは既に実現している。

425 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 13:22:44 .net]
for多すぎって[ ]の中じゃないの?

426 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 20:46:12 .net]
>>424
そうでもないだろ。

Pythonの配列操作がRubyと比べて面倒くさい
ttp://d.hatena.ne.jp/edvakf/20090405/1238885788

それよりPythonはsuperのキモさをなんとかしてくれんかいのう。
なんでsuper()に親クラス名を指定しなきゃいかんの?ba

427 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 21:00:08 .net]
>>426
multi-inheritence dakara

428 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 21:06:58 .net]
>>427
多重継承はまったく関係ないよ。
つうかなんで多重継承が関係してくんの?

429 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 21:07:27 .net]
>>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788

つ '-'.join(["%s"%(x) for x in sorted(a, reverse=True)])

430 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 21:08:35 .net]
私Ruby厨だけどsuperに関しては
superとsuper()で引数が違ってくるRubyの方がキモイと思う

431 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 21:13:13 .net]
>>426
> なんでsuper()に親クラス名を指定しなきゃいかんの?ba

Smalltalk系のようにsuperがcaller側のmethodのbindに依存するほうが
よほど言語設計として汚ないと思うが?



432 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 22:07:31 .net]
>>431
なんで汚いん?
「親クラス」という抽象的な表現ができず、具体的なクラス名をいちいち書かないといけないことは汚くないの?

433 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 22:15:57 .net]
明示的なだけで汚くはないだろ
多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になるし
Python3からは引数省略してsuper().methできるらしいけど

434 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 22:30:34 .net]
>>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

435 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 00:19:05 .net]
ようやくアンチスレらしくなって妙にうれしい

436 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:58:52 .net]
>>434
そうだね、だから Python 3.0 では super() に self を明示しなくても良くなるよ。
今の Python は、 Python 2.2 までの古いクラスと新しいクラスが混在していて、
後方互換性の為には明示的にクラス名を書かないといけないの。

437 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 02:16:01 .net]
古いクラスと新しいクラスが混在って要・不要が議論されたあげくにそれか?
自慢げに語ることじゃないだろ。 よほど言語設計として汚ないと思うが?

438 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 02:22:03 .net]
2.xまで混在
3は新だけ

439 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 03:15:41 .net]
>>437
Rubyとちがって、過去の資産を大切にするからね。
後方互換性を切る Py3k も数年がかりのプロジェクトになる。

新クラスは、必要と判断されたから導入された。でも、後方互換性の為に
旧クラスは残されている。
ruby の メソッドチェーンやブロック構文は、Pythonに導入しても「一部の人が
気持ちいい」とか「ときどき数タイプ減らせる」程度の効果しか認められないから
Pythonには導入されない。

440 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 03:20:53 .net]
>>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788
メソッドチェーンになれたRubyistがメソッドチェーンを無いことを反射的に
批判しているだけだろ。

文を分けないで関数を無制限にゴチャゴチャ繋げるのはPythonicではない。
一息に書いて良いのは内包表記で簡潔に書ける範囲までで、それ以上は
文を分けるべき。文を分けたることによって数タイプ増えるが、その分可視性は
向上するので、トータルの生産性に大きな差は無い。それなら、すっきりした
書き方だけを使うのが Pythonic way.

441 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 04:00:06 .net]
久々に伸びてると思ったらなんじゃこりゃ



442 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 04:41:11 .net]
>>432
同じ表現式の意味がバインドされているクラスによって変化するのは美しくないだろ。
言語仕様上の透明性を求めるか、表現式としての簡便さを求めるかの言語仕様上のトレードオフでしょ。

443 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 04:43:34 .net]
>>426
> Pythonの配列操作がRubyと比べて面倒くさい
> ttp://d.hatena.ne.jp/edvakf/20090405/1238885788

単に初学者が前に習った言語の作法にひきずられて
今学んでいる言語の流儀に逆らってるだけに見える。

444 名前:デフォルトの名無しさん [2009/06/09(火) 05:03:16 .net]
rubyやJavaのメソッドチェーン使うときにいつも気になるのは
途中でメソッドの戻り値がぬるぽになるんじゃないかってところ
だからpythonで文を分けて毎回if not hogeしている漏れは勝ち組

445 名前:デフォルトの名無しさん [2009/06/09(火) 05:13:49 .net]
>なんか今更この記事にコメントが付きだしたのですが、どこかで紹介されたのでしょうか?
笑える

>>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 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 07:12:26 .net]
>>436
なるほど、それが理由なのか。
じゃあ最初にオブジェクト指向機能を導入した時の設計が間違ってたんだな。
とりあえず「多重継承したらどの親クラスのメソッド呼ぶのかさえ曖昧になる」と言いはるバカは消えろwww

>>439
>Rubyとちがって、過去の資産を大切にするからね。
ちーがーうー、最初の設計が間違っていたから仕方なく過去を引きずっているだけwww
それを「過去の資産を大切に」とかバカまるだしwww
ほんとに大切にするなら3.0でも互換性をとっとけwww

>>442
>同じ表現式の意味がバインドされているクラスによって変化するのは美しくないだろ。

ほんとにそう思う?ほんとにそう思うなら、親クラス名が省略できるようになった3.0は美しくないの?
442にとっては3.0の仕様が美しくないそうだよwwww またバカ丸出しwwwwww
Pythonistaは442みたいなのをだまらせとけやwww 身内の恥さらしだぞwwwwww

447 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 07:45:28 .net]
雑草が増えたな

448 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 08:14:19 .net]
>>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
> 単に初学者が前に習った言語の作法にひきずられて
> 今学んでいる言語の流儀に逆らってるだけに見える。
こういうやつがいるかぎりは、争いはいつまでたっても終わんないだろうね。

449 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 08:15:08 .net]
ある種の若い男の子にありがちな語り口だよね。
わかるまいわかるまいと頑張りつつ、わからせる気も無い、のっけからの平行線狙いって。
場を味方につけつつ展開しないと、単に「こいつ一人が理解力無いだけ」って判断されて
オシマイなんだけど。

450 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 08:17:25 .net]
one liner書きにくすぎ
インデント氏ね

451 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 08:47:16 .net]
>>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狂信者なんてレッテルを貼ったりしないけど。



452 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 09:15:13 .net]
>>445
その例だと、一番目は lambda が不要で
'-'.join(map(str, sorted(a, reverse=True))) # もしくは itertools.imap

二番目は reversed が一つ余計で
'-'.join(str(x) for x in sorted(a, reverse=True))

三番目の % 記法を無理やり使うのは無いな。少なくとも (x,) としないと、 x 自体がタプル
だったときに問題が起こる。

453 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 09:16:30 .net]
>>444
確かに、Pythonの一行 = 1文 = 一つの事 という文化は、
例外発生時にスタックトレースを見るとすぐにどこが例外を
出したか特定できるという副次的な効果もあるねw

454 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 09:24:33 .net]
>>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() の方が、文字列に関する機能は文字列のメソッドという
方が分かり易いし正しいと思うぞ。

455 名前:デフォルトの名無しさん [2009/06/09(火) 12:21:12 .net]
末尾に!を付けると代入になるとかいいんじゃね

456 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 12:31:38 .net]
>>454
「左から右」が好きなのは最近の人っつかRails厨に多い気がする
(s = a.sort.reverse).map{|x| x.to_s}.join('-')で別に気にならないな
理屈は後付けで結局Matzの思いつきが多いのは然りごもっとも

> あと、リストの要素を「*文字列として* 連結する」というメソッドがリストのメソッドなのは
num.to_sとかの延長で考えると、別にいいんじゃねと思ってる
機能よりは主体がどっちなのかで分けてる感じかな、よくわからんが

457 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 12:40:48 .net]
*リスト*を連結するのがstrのメソッドなのはいいのか?

458 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 13:06:10 .net]
リストの連結(リストをいくつか受け取って連結したリストを返す)メソッドがstrに定義されてる
言語なんてあるのか?

459 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:29:46 .net]
>>444
がっ!

460 名前:デフォルトの名無しさん [2009/06/09(火) 14:37:02 .net]
>>453
それはたまたま副次的な効果が出たんじゃなくて
効果を期待してそのために文を分けてると思ってたw

461 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:38:58 .net]
> ruby
> a.sort().reverse().map{|x| x.to_s}.join('-')

これ成城に動いてるときはいいんだけど
バグが出たら何が原因か分かりづらいぜ?



462 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:41:05 .net]
>>454
>結局、Matzの「あ、こう書けるとおもしろいんじゃね?」というのに後付けで読みやすい
>とか言っちゃってる気がしてならない。

そういう理由だったの?
Smalltalk から影響受けたんだと思ってたお

463 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:42:34 .net]
>>457
リスト以外でも、イテレートできればなんでも連結できるよ?

464 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:43:05 .net]
>>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) とか書いてた!これはいらないのか!ちょー参考になった。さんくす。


465 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:44:06 .net]
>>458
Java

466 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:47:34 .net]
python は lisp と謂われる所以ですな

467 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:48:38 .net]
>>452
今回はたまたまそれで良かった訳だが
str() 以上に複雑なことさせようとしたら lambda 必要になるよね?

468 名前:デフォルトの名無しさん [2009/06/09(火) 14:49:24 .net]
理想ばっか語ってても仕方ないよ

469 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:51:33 .net]
>>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>
とか。シーケンシャルな構造で要素をセパレータを挟みながら並べたいってのは
文字列処理にしか出てこないとは限らないだろ。

470 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:53:58 .net]
>>467
それ以上に複雑になったら、mapではなくてリスト内包を使う。
リスト内包でもすっきり書けないくらい複雑になったら、ローカルで関数を定義して
それを map する。

Pythonの関数は普通の変数と同じ名前空間に存在しているので扱いが楽。

471 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:01:41 .net]
>>464
> (s = a.sort.reverse).map{|x| x.to_s}.join('-')
これ、動作を追おうとすると、 a.sort.reverse までは左から右によんで、
そっからいきなり一番左に行って、代入結果に対してさらに右にとんで
処理しているんだよね?

俺は「左から右」のメソッドチェーンがPythonicな書き方に比べて特に
読みやすいとは思わないけど、もし「左から右に流れるように処理が連結
できる」のが本当に読みやすいのであれば、代入式も代入結果が式の値
なんだから代入結果を右に持っていくべきだよね。

Ruby厨ってRubyこそ正義って思って思考停止してない?



472 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:12:20 .net]
pythonのlist.sort(), list.reverse()が処理後のリストを返さない理由を2文字で教えてください。

473 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:15:00 .net]
>>471
464ではないし、Ruby触ったことないけど・・・
それは「コンピュータが処理をする順序の話」に寄りすぎちゃってない?
これって、「人間が動作の流れを目で追う話」だよね?

俺が「一人の人間として」コードがやっていることを目で追うとき、
代入というのは「○○に××を代入する」行為であると捉えているから、
このコードは十分「左から右」になってるなぁ。
sにaをソートしてひっくり返したものを代入して、mapしてjoinする、って読む。

474 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:18:08 .net]
>>470
mapとリスト内包ってどっちが速いん?
メモリ使用効率は?

475 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:21:14 .net]
代入を右から左に「読む」という主張の人は、当然ながら
a = b = c = 10
みたいなコードは、「10をcに代入し、その値をbに代入し・・・」って読み方なんだよね。
俺はそうじゃなくて、「aとbとcに10を代入する」って読む。

この認識が「コンピュータの動き」と異なっていることはわかっているけど、
でも自分が「プログラムの動き」からも離れて強引に左から右に読んでる、とも思わない。

476 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:21:47 .net]
>>471
>> (s = a.sort.reverse).map{|x| x.to_s}.join('-')
>これ、動作を追おうとすると、 a.sort.reverse までは左から右によんで、
>そっからいきなり一番左に行って、代入結果に対してさらに右にとんで
>処理しているんだよね?

いや、最初に「(s=」が目に入るからその時点で
脳内スタックに s の代入と s に対する次の
「).map」の準備が出来るから大丈夫

477 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:29:55 .net]
Pythonのjoinが文字列のメソッドとなっているのは、単にリストだけでなくタプルや文字列やジェネレータのように
繰り返し可能なものすべてを扱えるようにしているからだよね。

だからほんとは
join(iteratable, separator='')
という関数でよかったんじゃないの?
joinが文字列のメソッドだからすごく違和感があるけど、単なる組み込み関数として存在するなら、別に違和感なし。

join(['a', 'b', 'c'])
join(('a', 'b', 'c'))
join(x for x in 'abc')


478 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:34:17 .net]
>>465
Javaのどのメソッド? Stringクラスにはないけど。

479 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:36:29 .net]
(s = a.sort.reverse).map{|x| x.to_s}.join('-')
これを代入部分も含めたメソッドチェーン的に書き直すなら
s.assign(a.sort.reverse).map{|x| x.to_s}.join('-')
だろうね


480 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:38:11 .net]
>>472
ヒントください

481 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 16:08:40 .net]
>>469
>シーケンシャルな構造で要素をセパレータを挟みながら並べたいってのは
>文字列処理にしか出てこないとは限らないだろ。
だったらなおさら文字列のメソッドにするべきじゃないだろ。
セパレータは文字列と限んないんだろ?joinを文字列のメソッドにしたら、セパレータは文字列限定じゃないか。
join(seq, sep='') のような組み込み関数にしとくべきだろ。
''.join()が文字列しか対象としてないのを忘れて「文字列処理にしか出てこないとは限らない」とかバカじゃねーの




482 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 16:26:14 .net]
map が map(func, list) の構造をしてるから
join(sep='', seq=[])
になってた方がいいかな

483 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 16:27:37 .net]
それどこのreduce

484 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 18:41:59 .net]
join = lambda x, y: y.join(map(str, x))

485 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:06:44 .net]
すべてS式にすれば争いは起きないのに

486 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 20:38:36 .net]
>>485
すべてS式にしたらしたでCLOSになって、
どれがマルチメソッドの第一引数になるかで揉める予感。

487 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:17:56 .net]
>>472
in-place なメソッドだから。

488 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:21:16 .net]
>>477
文字列に限定しないメソッドにする場合、まず 「つなぐ」 が何かを
定義しないと行けない。join を処理前の iteratable と切り離すのは
全く問題ないが、つないだ後の形と切り離して扱うのは効率が悪い。

489 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 21:22:22 .net]
>>481
セパレータの型によってjoinの実装が変わるんだから、
文字列以外でjoinするときにはその型が自分でjoinを実装するべき。

490 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:26:46 .net]
>>469
Python標準では str 以外で join() を実装しているのってあるの?
hogehoge.join(['a','b','c']) # hogehoge は何か
文字列以外の join() が用意されてないなら、469のは説得力を感じないなあ。

491 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 22:58:11 .net]
>>490
少なくともUserStringは同型のjoinを持っているし、意味が違う "join" という
名前はスレッドの join であったり db の join であったりたくさんあるよ。

逆に、 str.join だと何か問題があるの?グローバルという特別な空間を
犯したり、リスト・タプル・その他すべてのイテレート可能型の名前空間に
文字列のための "join" メソッドをねじ込まないといけない理由は何?



492 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 23:51:10 .net]
>>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界の恥さらしだろ。身内の恥は身内でなんとかしてくれ。

493 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:04:54 .net]
>>492
お前こそ反論したいだけだろ。
>>491 は UserString という「同じ意味の」 join の反例を出している。

その上で、文字列以外にも join という名前はよくでてくるから文字列と
直接の関係がないリストに join という名前で文字列用のメソッドを
持ち込むことが名前空間の視点で間違っていると言ってるだけだろ。

494 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:11:35 .net]
RTFM
ttp://www.python.org/doc/faq/general/#why-is-join-a-string-method-instead-of-a-list-or-tuple-method

495 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:18:58 .net]
>>492
> listの要素を連結するメソッドが、listじゃなくてstrのメソッドになっているのがおかしいんじゃないかという話だ。
joinはlistの要素を連結するんじゃないぞ。iterable であれば tuple でも generator でも
なんでも使える。listのメソッドにしたらリストにしか使えない。これだけでもリストに join を
実装すべきでない明確な理由になるな。

496 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:19:00 .net]
>>490
> Python標準では str 以外で join() を実装しているのってあるの?

unicode.join()
bytes.join()


497 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:19:46 .net]
>>496
bytearray.join もだねw

498 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:47:47 .net]
Python FAQにjoinのこと載ってあった。

4.8 Why is join() a string method instead of a list or tuple method?
(なんでjoin()はlistやtupleのメソッドじゃなくてstringのメソッドなの?)
ttp://www.python.org/doc/faq/general/#why-is-join-a-string-method-instead-of-a-list-or-tuple-method

やっぱりみんな疑問に思うよな。思わないやつもいるけど。

FAQの答え
This method can be used with any argument which obeys the rules for sequence objects, including any new classes you might define yourself.
(このメソッドは、シーケンスオブジェクトのルールに則った引数なら何でも使うことができます。あなた自身が定義した新しいクラスでも構いません。)

つまりlistやtuple以外でも、sequenceのように振る舞うものなら何でもjoinできるようにするために、joinをlistではなくstrのメソッドにしているわけだ。
>>477の通りだな。

Rubyだとmix-inがあるから、任意のクラスでEnumerableをincludeしてやればArrayじゃないものでもjoinが使えるようになるけど、
Pythonではそうするかわりに引数を抽象化することで、繰り返し可能であればなんでもjoinで使えるようになるということか。
これならjoinがstrのメソッドである理由として納得できるな。
Pythonでは多重継承できるんだからMix-inも使える。だからEnumerableを導入することは技術的には可能だけど、iteratableを引数にするという方法も悪くないね。

これでスッキリした。Pythonいいね!
あとは多重継承が〜、joinは文字列を対象にしたメソッドだから〜、と、間違った理由をねつ造するバカを排除してくれ。
ほんとの理由を知らないくせに、分かったふりして語るなよな。答えしらないんなら出てくんな。
おまえリアルでも知ったかぶってるだろ。ほんと迷惑。


499 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 00:56:53 .net]
なんでここIDでないんだろ

500 名前:デフォルトの名無しさん [2009/06/10(水) 00:59:11 .net]
迷惑な香具師に絡んで空気汚す香具師も迷惑

501 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:07:41 .net]
>>493
>>>491 は UserString という「同じ意味の」 join の反例を出している。
なんでこれが反例なんだ?要素を連結して文字列を返しているんだからstr.joinとかわらない。
反例というなら、文字列じゃないセパレータを使って、要素の連結結果として文字列じゃないのを返すものをだせよ。

>その上で、文字列以外にも join という名前はよくでてくるから文字列と
>直接の関係がないリストに join という名前で文字列用のメソッドを
>持ち込むことが名前空間の視点で間違っていると言ってるだけだろ。
だから、「joinが文字列用のメソッド」といいきれるのかという質問の答えになってないだろ。
おまえの話は、「joinは文字列用のメソッドであるのが自然」という前提から始まってるだろ。
その前提がおかしいんじゃないかって話をしているのに、名前空間なんか関係ないだろ。
はなっから質問が理解できてねーwww

>>495
そういう納得できる回答がほしいわけよ。バカのねつ造にゲンナリしたから、もう自力で探したけど。
バカが理由もなく「joinは文字列用のメソッド」とかぬかしてるから、Rubyistごときに反論されるんじゃん。

ついでにいうと、それはjoinがlistやtupleのメソッドではない理由としては十分だけど、strのメソッドである理由としては不十分だけどな。

あとsuperでクラス名を指定しなきゃいけないのは、多重継承が原因じゃないからな。試験にでても間違えるなよ!



502 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:13:40 .net]
>>498
一つの理由を見つけただけですべてを判った気になるな。
ちゃんとそのFAQの最後に、
Because this is a string method it can work for Unicode strings as
well as plain ASCII strings. If join() were a method of the sequence
types then the sequence types would have to decide which type of
string to return depending on the type of the separator.
って書いてあるだろーが。

>>477,495 が正解であると同時に、「strのjoinだからstr.join」というのも
正解だ。

Rubyは自分で文字列と同じ振る舞いをする型を追加したら、
join_to_mystr なんてメソッドを Enumerable に追加するのか?
似たものを追加するときに同じ方法を一貫して使えるのが
正しい方法だ。

503 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:13:45 .net]
>>461
>> ruby
>> a.sort().reverse().map{|x| x.to_s}.join('-')
>
>これ成城に動いてるときはいいんだけど
>バグが出たら何が原因か分かりづらいぜ?

Python:
'-'.join(str(x) for x in sorted(a, reverse=True))

Pythonだって、バグが出たら同じようなもんじゃん。


504 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:18:58 .net]
>>501
> なんでこれが反例なんだ?
> 要素を連結して文字列を返しているんだからstr.joinとかわらない。

strを拡張した型を作って join() したら元の str に戻ってしまうのが
正しい動作だと言うのか?
Unicodeをjoin()した結果がstrになるのが正しい動作か?

505 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:29:17 .net]
同じFAQに、
"1, 2, 4, 8, 16".split(", ")

", ".join([1,2,4,8,16])
と対称性が取れているという理由も載ってるね。
他の二つの理由と合わせて考えると、joinがstrのメソッドである事は
とても合理的だと思える。

506 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 01:41:41 .net]
目的のものが作れればいいんじゃない?

507 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 02:14:12 .net]
>>481
要素の型が str, unicode, bytes 以外のシーケンスに対する join は、使う場面が
少ないとはいえ一般化して考えれば存在しうるんだから、実際に出てきたときに
対応できないのはまずいね。

検索してみたら、trac の html まわりでちょうど >>469 の言っていたような事を
してる。
www.google.co.jp/codesearch/p?hl=ja#-EKtPk0GYAM/trac-0.10.3/trac/util/html.py&q=%22def%20join%22%20self&l=60

まぁ、一貫性を重視するなら文字列が入るとは限らないリストのメソッドに文字列の
連結メソッドを使うという解になるし、文字列は非常によく使う型だから一貫性から
飛び出した特別扱いにするというのも間違いではない。
あとは、「それがしっくりくる(気がする)」だけで特別扱いを許す緩いRubyと、
「明確なメリット無しに一貫性は壊さない」Python の違いでしかない。

結局どちらにしても生産性に違いはないし、読みやすさもなれたらそっちが読みやすい
程度の問題。

508 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 02:18:33 .net]
>>505
それだ!!

509 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 06:43:49 .net]
>>507
> 結局どちらにしても生産性に違いはないし、読みやすさもなれたらそっちが読みやすい
> 程度の問題。

つまり結論は>>443ってことかよ。

510 名前:507 mailto:sage [2009/06/10(水) 11:05:32 .net]
> 一貫性を重視するなら文字列が入るとは限らないリストのメソッドに文字列の
> 連結メソッドを使うという解になるし、
typo
一貫性を重視するなら文字列が入るとは限らないリストのメソッドに文字列の
連結メソッドを入れるなという解になるし、

511 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 13:52:20 .net]
>>502
それはダウトだろう。
今のjoinは単に u'a' + '' + u'b' + '' + u'c' のようなものだろ。

>>> ''.join([u'a',u'b',u'c'])
u'abc'

「strのjoinだからstr」なんてことはない。
もしそうなら
''.join([1,2,3]) だって要素をすべてstr()にしてからjoinしてくれてもいいけど、ぜんぜんそうなってない。
どうせ要素のすべてが文字列である場合じゃないとjoinできないんだから、listのメソッドだったとしても別におかしくはない。

Pythonの仕様上、joinをstrのメソッドにする理由はわかるけど、それが自然かどうかというのはまた別の話。



512 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 13:55:14 .net]
>>502
>Rubyは自分で文字列と同じ振る舞いをする型を追加したら、
>join_to_mystr なんてメソッドを Enumerable に追加するのか?

そうなったらjoinの引数として渡してやるだけでいいじゃん。
str.join(list) が list.join(str) となるだけ。

513 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 14:08:22 .net]
>>502
>一つの理由を見つけただけですべてを判った気になるな。
その理由すらみつけられなかったやつがえらそうに。
最初からFAQを紹介しとけばよかったものを、シッタカブリのせいでぐちゃぐちゃ。
こいつリアルでもおんなじことしてんだろうな。だれもおまえの言葉、ありがたがってないから。

514 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 15:05:56 .net]
日本人はすぐ個人攻撃に走る

515 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 16:12:54 .net]
論理的に反論できないんですねわかります

516 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:01:21 .net]
まぁ、論理的に反論できないやつが人格攻撃なんてよくあることだ罠

517 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:04:49 .net]
偉そうにはとても見えないけど、仮に偉そうだったとして、
実際この子よりは偉いだろうから仕方ないと思う。
相対的にこの子と対等かそれ以下になるのは、常人には逆に難しそう。

518 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:10:07 .net]
>>511
> どうせ要素のすべてが文字列である場合じゃないとjoinできないんだから、listのメソッドだったとしても別におかしくはない。

だから、どうしてstringのjoinしか見ないんだって何度もツッコミ入れられてるだろ。
joinがstringに定義されているから、引数はstringのiterableを取り、結果として連結されたstringを返す。
同様に、bytearrayのjoinは引数としてbytearrayのiterableを取り、結果として連結されたbytearrayを返す。
全部listのjoinが何とかするよりも、連結されるクラスが定義するpython式のほうがずっと自然だ。

519 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:11:18 .net]
>>512
> そうなったらjoinの引数として渡してやるだけでいいじゃん。
> str.join(list) が list.join(str) となるだけ。

そのlistはstrのこともbytearrayのことも何でも知ってなきゃならないわけだ。
ユーザ定義のクラスを連結したい時にはどうするの?

520 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:26:40 .net]
その場合はlist.join内部を+とかconcatとかで実装しておいて
その実装に使われたメソッドを各クラスで定義するのが自然ではなかろうか
一手間余計にかかるが

521 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:28:47 .net]
       _________
      /     \
    /   ⌒  ⌒\
   /   ( ⌒)  (⌒)\
   i  ::::::⌒ (__人__) ⌒:: i   
   ヽ、    `ー '   /
     /     ┌─┐
     i   丶 ヽ{ .茶 }ヽ
     r     ヽ、__)一(_丿
     ヽ、___   ヽ ヽ 
     と_____ノ_ノ



522 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:33:39 .net]
>>520
つまり連結演算子/連結関数を決め打ちするということね。
そんなことするぐらいならPythonのように連結されるクラスが提供するほうが
柔軟性があって、かつ、確実だと思うが。

523 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:35:48 .net]
>>520
> その場合はlist.join内部を+とかconcatとかで実装しておいて

それこそjoinのありがたみが台無しじゃん。
1つ1つ連結していたら計算量が大きくなるぞ。

524 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 17:47:46 .net]
__
    ̄ ̄ ̄二二ニ=-
'''''""" ̄ ̄
           -=ニニニニ=-


                          /⌒ヽ   _,,-''"
                       _  ,(^ω^ ) ,-''";  ;,
                         / ,_O_,,-''"'; ', :' ;; ;,'
                     (.゙ー'''", ;,; ' ; ;;  ':  ,'
                   _,,-','", ;: ' ; :, ': ,:    :'  ┼ヽ  -|r‐、. レ |
                _,,-','", ;: ' ; :, ': ,:    :'     d⌒) ./| _ノ  __ノ

525 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 19:56:04 .net]
Rubyの方が「(Matzの)気持ちよさ」のために汎用性や効率を
犠牲にしている所が多いので、RubyとPythonの仕様の違いで
「Pythonが間違っている!」と指摘するRuby厨はたいてい
視野が狭い。

526 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 21:15:35 .net]
>>525
おまえこそ視野を広く持てよ。

join()がArrayやListのメソッドである言語:
Ruby, JavaScript, Smalltalk(GNU), Perl(List用の関数に分類される)

join()が文字列のメソッドである言語:
Python, C#, PHP(文字列用の関数に分類される)

まあオブジェクト指向的に、"連結せよ" というメッセージをどこに送信するかを考えると、そりゃArrayやListに送るわな。
Pythonの場合はオブジェクト指向として考えたわけじゃなくて、シーケンスを引数にしたいという都合からそうなっているだけ。
joinを関数のようにとらえているとそれでもいいけど、オブジェクト指向的に考えると不自然ってだけ。
C#も、joinはインスタンスメソッドではなくスタティックメソッドだから、まさに関数的な考え方。
ttp://www.atmarkit.co.jp/fdotnet/dotnettips/366join/join.html

joinは、オブジェクト指向が強い言語では当然のようにArrayやListのメソッドだけど、関数が主体の言語では文字列のメソッドになることがある。
少なくとも、joinが文字列のメソッドである*べき*なんてのはただのねつ造だし、言語でいえば実は少数派。

まあいいじゃん、joinが文字列のメソッドでも。PHPと同じだと思えば。
525の視野が広くなることを願いながら、この話題はここで終了。

527 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 22:00:10 .net]
>>526が言語とライブラリの区別もつかない土方な件

528 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 22:04:40 .net]
> まあオブジェクト指向的に、"連結せよ" というメッセージをどこに送信するかを考えると、そりゃArrayやListに送るわな。


オブジェクト指向的には"連結せよ"というメッセージは連結子になるオブジェクト(string)に送るのが自然だろ。
ArrayやListに送るという発想はSmalltalkの古いCollectionの設計に縛られているだけ。

529 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 22:08:45 .net]
>>526
オブジェクト指向的かどうかではなくて、型に対する態度の問題だと思うぞ。
型を強く意識する言語では、文字列以外も入るリストに要素を文字列として
連結するなんてメソッドを追加するのはあり得ない。

C#のstaticmethod の join は、 Python にも string モジュールに join
という関数がある。文字列に関連したメソッドなんだから str の
インスタンスメソッドにした方が便利だから、インスタンスメソッドに
なっただけ。

530 名前:デフォルトの名無しさん mailto:sage [2009/06/10(水) 22:13:24 .net]
「オブジェクト指向的に自然」って、自分で思いこんでるのが
すべての人にとっても自然だと考えるのはなんでなんだろうね。

少なくとも文字列の連結処理を効率的に行うには文字列の
実装を知らないといけなくて、Arrayが文字列の内部実装を
直接弄って効率的な連結をするのは気持ち悪いな。

531 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 00:45:49 .net]
理想の世界で生きていきたくても、
蛇にそそのかされてリンゴを食べたからな。
現実と向き合わないとならないのだよ。



532 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 01:13:38 .net]
      ______.______.__
    , '"――――‐, '"――――― ヽ`i1
   ./ ∧_∧   //'~ ̄ ̄|.|.| ̄ ̄~|.||::||
   .i (・∀・ .)  i !  _,._|.|.|  .   |.l|::||
 [;].!_っ⌒'と _0[;],l |  f _..┘|:. ̄ ̄~ .|| ||._________,
  ~l!=;:,...二二....,:;=iヨ.'ー''"~ . __ !    __.|| ||i リンゴジュース  ̄i1
  li..,._.  ̄。 ̄. _.,..!.|   ........~ノ..............~ || !|i,,___,,___,,___,,__,,!|
  il_`}≡≡{´_E|..::' /⌒ヽ'ヽ_____/l|!=イ二/_/ ⌒ヽヽ(ニ(]
.  {=i:::::::[二]:::::::i=i::」  |i.(*).i;;;;|i□□ー‐! ::::::::::|;;;;;;|ii.(*) i;;;|二l]
   ̄ ̄ゞ三ノ  ̄ ̄ ̄ゞ_ノ ̄  ゞゞ三ノ    ̄ゞゞ_ノ~    ≡3

533 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 09:03:24 .net]
>>511
>どうせ要素のすべてが文字列である場合じゃないとjoinできないんだから、listのメソッドだったとしても別におかしくはない。


要素のすべてが文字列である場合じゃないとjoinできないんだから
str/unicode/byteのメソッドなのでは?

534 名前:494=502 mailto:sage [2009/06/11(木) 13:03:13 .net]
>>513
俺は >>498 よりも先に >>494 を書いて、ちゃんと最後まで読んだ上で
RTFM と言ったんだが?

535 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 13:22:39 .net]
>>502
違う、全然違う。
str.join は、自動的に unicode へ格上げするような仕様になっている
だけで、実装は + (__add__) よりも効率的なものを使っている。
結果がたまたま等しいだけであって、sep.join([u'a', u'b']) と
u'a' + sep + u'b' は違う意味だ。

「strのjoinだからstr」というのは、逆に言えば「str以外のjoin」は違う動作を
するという意味でもある。

In [3]: k = bytearray('k')
In [4]: k.join([u'a', u'b'])
TypeError: can only join an iterable of bytes (item 0 has type 'unicode')


536 名前:535 mailto:sage [2009/06/11(木) 13:23:36 .net]
>>502 じゃなくて >>511 だった


537 名前:デフォルトの名無しさん [2009/06/11(木) 14:57:21 .net]
reduce(lambda x,y: str(x) + ',' + str(y), [1,2,3])
これ reduce 使う前提でもっと効率良く書けますか?

538 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 14:58:21 .net]
>>> reduce(lambda x,y: x + ',' + str(y), [1,2,3], '')
',1,2,3'
>>> reduce(lambda x,y: x + ',' + y, [1,2,3], '')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
TypeError: cannot concatenate 'str' and 'int' objects

ダメぽ orz

539 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 15:00:15 .net]
','.join(map(str,[1,2,3]))

540 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 15:34:13 .net]
>>539
>reduce使う前提で

まあその前提条件はどうよという点はさておく

541 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 16:06:04 .net]
仮にreduceでどんだけがんばってもjoinよりは速くならないだろう



542 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 16:08:15 .net]
reduce(lambda x, y: '%s,%s' % (x, y), [1,2,3])
スマートさを求めるならこのあたりが限界かな

543 名前:デフォルトの名無しさん mailto:sage [2009/06/11(木) 21:48:41 .net]
生成される一時オブジェクトの数のオーダが違うから無理だと思う

544 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 08:08:33 .net]
joinは?

545 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 08:17:15 .net]
joinを使うと一時オブジェクトなしで計算量O(N)。
reduceを使うと一時オブジェクトがO(N)必要で計算量O(N^2)。
どっちが良いかは明白だな。

546 名前:デフォルトの名無しさん mailto:sage [2009/06/12(金) 10:16:59 .net]
Ruby の join って Enumerable のメソッドでは無くてリストのメソッドなんだな。
Pythonよりよっぽど気持ち悪い。

547 名前:デフォルトの名無しさん mailto:sage [2009/06/15(月) 06:27:55 .net]
123

548 名前:デフォルトの名無しさん mailto:sage [2009/06/17(水) 12:12:18 .net]
daa

549 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 06:52:49 .net]
なんかすげーあちこちに飛び火したな、joinネタ
ttp://d.hatena.ne.jp/methane/20090615/1245025996
ttp://blog.livedoor.jp/dankogai/archives/51226075.html
ttp://d.hatena.ne.jp/methane/20090621/1245532793

550 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 12:29:31 .net]
>>549
二行目
だんこがい
ってばかだな

class List(list):
    def join(self, j = ''):
        return j.join(map(lambda x: '%s' % x, self))

551 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 12:38:06 .net]
return j.join(map(repr, self))



552 名前:デフォルトの名無しさん mailto:sage [2009/06/21(日) 13:53:50 .net]
>>550
>>> t = 'foo',
>>> t
('foo',)
>>> "%s" % t
'foo'
>>> str(t)
"('foo',)"
3行目のmethaneの方がスマート。
でも、 sep.join(x if isinstance(x, basestring) else str(x) for x in iterable) と
一行で書いた方が多分速いな。

>>551
repr と str は違う

553 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 05:29:13 .net]

    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!



554 名前:デフォルトの名無しさん [2009/07/22(水) 14:57:08 .net]
test

555 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 19:32:27 .net]
pythonをはじめて使った時に ''.join()みたいな書き方は
あり得ないと思ったけど、慣れてしまえば使いやすいね。

556 名前:デフォルトの名無しさん mailto:sage [2009/07/24(金) 19:37:07 .net]
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!


557 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 03:36:26 .net]
JavaScriptもjoin使うの知って
まぁそうゆうもんかと思った。

558 名前:デフォルトの名無しさん mailto:sage [2009/07/25(土) 17:15:15 .net]
キャメルケースでも、アンダースコア区切りでもないのが、個人的に違和感がある。

559 名前:デフォルトの名無しさん [2009/10/03(土) 22:56:53 .net]
アンチ少ないお

560 名前:デフォルトの名無しさん mailto:sage [2009/10/03(土) 23:01:16 .net]
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!

561 名前:TiZCCqJpUPBkUeQHx mailto:6l8b8n21.@gmail.com [2009/10/23(金) 03:16:56 .net]
Black community in a town of 96% whites. ,



562 名前:デフォルトの名無しさん [2009/11/03(火) 20:47:51 .net]
インデント記法は慣れれば気にならないし、
xx.lenghがなくてlen(xx)に統一されてるのも
個人的には嫌いだけど一理あるとは認めざる得ない。

でもスライスのx[n:m]の範囲指定は気持ち悪い。
なんか合理的な理由でもあるの?


563 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 20:52:51 .net]
他にどんな方法があるの?

564 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:37:23 .net]
>>562
日本語の勉強してから出直せ

565 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:38:46 .net]
>>563
[n:m] が n〜(m-1) が気持ち悪いっていう意味だろうと E.S.P.

漏れは合理的だと思うけどね

566 名前:デフォルトの名無しさん [2009/11/03(火) 21:47:04 .net]
>>565
ああそういう意味か
漏れも>>562が何言ってるのか判らんかった

例えばx文字目からy文字(文字数)取り出すとき
s[x:x+y-1]
とするよりも
s[x:x+y]
の方が計算が少なくて済むし

逆にpythonの中の人も
s[x:y]
が与えられたときに長さが
y-x+1
じゃなくて
y-x
となってここも計算が少なくて済む

小学生でも判るレベルの話

567 名前:デフォルトの名無しさん mailto:sage [2009/11/03(火) 21:58:48 .net]
x文字目からy文字目まで取り出すとき
s[x:y+1]と計算が多くて済むから合理的

568 名前:デフォルトの名無しさん [2009/11/03(火) 22:31:58 .net]
x文字目から最後の文字からn文字前まで取り出すとき
s[x:-n]と計算が少なくて済むから合理的

>>> 'abcde'[2:]
'cde'
>>> 'abcde'[2:-1]
'cd'
>>> 'abcde'[2:-2]
'c'


569 名前:デフォルトの名無しさん [2009/11/03(火) 22:33:52 .net]
s = 'abcde'
s[2:len(s)]
s[2:len(s)-1]
s[2:len(s)-2]

570 名前:デフォルトの名無しさん mailto:sage [2009/11/04(水) 17:09:36 .net]
Fortranに倣った

571 名前:sage [2009/11/05(木) 01:57:16 .net]
>571
a(:)みたいな配列を1-n, n-にわけたいとき、
Fortran a(:n), a(n+1:)
python a[:n] a[n:]
と、pythonの方がすっきりだ。これに気づいてからpythonのスライシングを許せるようになったw



572 名前:デフォルトの名無しさん mailto:sage [2009/11/05(木) 19:04:13 .net]
0-origin の index の場合、 [begin, end) で範囲を表現するのが一般的
大きさ0の範囲を [x,x) で表現できる。

573 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 01:00:35 .net]
>>572
その表記ってC++勉強して初めて知ったけど一般的なん?

574 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 01:12:29 .net]
数学表記でしょ
閉区間とか開区間とか

575 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 01:36:39 .net]
ああそうか、思いっきり一般的だw
>>573で初めてとか言ったけど学校で習った覚えもあるわ

576 名前:デフォルトの名無しさん mailto:sage [2009/11/06(金) 23:36:11 .net]
ヨーロッパとかだと半開区間を [a, b[ とか書いたりする

きもい

577 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 17:42:00 .net]
groups.google.com/group/unladen-swallow/browse_thread/thread/4edbc406f544643e
googleは新規のプロジェクトではpythonを使わないように勧めてるらしい

578 名前:デフォルトの名無しさん mailto:sage [2009/11/10(火) 22:34:32 .net]
GAEもう使ってないから関係ないわw

579 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 00:31:02 .net]
だからといってRubyやPerlやPHPが代わりに使われることはないわけだが。

580 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 00:33:31 .net]
するとGuile?
名前も似てるしな
名前も似てるしな

581 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 01:16:24 .net]
Google のいちおしは Noop on Scala だろ



582 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 01:49:35 .net]
Javaってことじゃん
やっぱ時代はじゃばだよな!

583 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 12:50:13 .net]
Goって囲碁のプログラムかと思ったよ

シンプルで高速、Googleの新プログラミング言語「Go」
ttp://journal.mycom.co.jp/news/2009/11/11/025/?rt=na

584 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 15:23:00 .net]
Google の中の人、言語作るの好きだな

585 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 18:21:08 .net]
Noopが当て馬、Goが本命?

586 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:10:10 .net]
また中途半端なものを出してきたなw

587 名前:デフォルトの名無しさん mailto:sage [2009/11/11(水) 22:46:39 .net]
単に Google の中の人は飽きっぽいだけだと思

588 名前:デフォルトの名無しさん mailto:sage [2009/12/25(金) 20:18:30 .net]
test

589 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 22:59:29 .net]
なんでlist.rindexがないのか、理解できない

590 名前:デフォルトの名無しさん mailto:sage [2010/01/10(日) 23:03:05 .net]
双方向リンクになってないから?
reverseかけてからやるしかないね

591 名前:デフォルトの名無しさん mailto:sage [2010/04/10(土) 18:43:33 .net]
なんでPythonスレはあんなに荒れているのに、このスレはこんなに平和なのか。



592 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 16:53:40 .net]
このスレが機能してないからでは

593 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 17:28:44 .net]
ここはスレタイがネガティブだから平和なのでは。
本スレに"人生の敗北者でも使える"を付けてみるとか。


594 名前:デフォルトの名無しさん mailto:sage [2010/04/11(日) 18:38:07 .net]
そういえば昔は付いてたな

595 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 13:15:53 .net]
とあるエディットボックスの日本語入力中にIMEの変換中の文字列を取得したいのですが
from ctypes import *
from ctypes.wintypes import *
ImmGetContext = windll.imm32.ImmGetContext
ImmGetContext.argtypes = [c_int]
ImmGetContext.restypes = c_int
ImmGetCompositionString = windll.imm32.ImmGetCompositionStringA
ImmGetCompositionString.argtypes = [c_int, c_int, c_char_p, c_int]
ImmGetCompositionString.restypes = c_int
GCS_COMPSTR = 0x0008
hwnd = エディットボックスのウインドウハンドル
himc = ImmGetContext(hwnd) # 入力コンテキスト取得
buf = create_string_buffer('dummy', 1024) # バッファ作成
print ImmGetCompositionString(himc, GCS_COMPSTR, buf, 0) # IME変換中の文字列の長さに応じた値が返ってくる
print ' '.join(('%02x' % ord(c)) for c in buf.raw) # 常にバッファ作成時の初期化文字列「'dummy'」しか返ってこない
…となってしまいます
ctypes のポインタ渡しの説明を見ると c_char_p ではなく
create_string_buffer で作ったものを渡せとあるので
そうしたつもりなのですが期待通りに動きません
どなたか上手く取得する方法を教えてください
ちなみに
buf = create_string_buffer('dummy', 1024)
print '>',
# libc.scanf('%s', buf)
cdll.msvcrt.scanf('%s', buf)
print ' '.join(('%02x' % ord(c)) for c in buf.raw)
print buf.value
こちらは動きます
バッファオーバーランとかの突っ込みはなしでおながいします

596 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 14:16:47 .net]
ImmGetCompositionString(himc, GCS_COMPSTR, byref(buf), 0) は?

597 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 14:54:02 .net]
ImmGetCompositionStringの第4引数を0 => len(buf)あるいは1024

598 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 14:55:20 .net]
ImmGetCompositionStringの
3つ目の引数はLPVOIDだけど
char*として扱っていいのか?

599 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 15:01:11 .net]
>>596-598
ありがとうございます

ImmGetCompositionString(himc, GCS_COMPSTR, buf, len(buf.raw))

で取得出来ました


600 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 15:10:26 .net]
なんでPythonスレはあんなに荒れているのに、このスレはこんなに平和なのか。

601 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 15:14:50 .net]
>>597
print ImmGetCompositionString(himc, GCS_COMPSTR, buf, len(buf))
print ' '.join(('%02x' % ord(c)) for c in buf)
print buf.value

で大丈夫でした

あと
変換中の文字列が len(buf) の長さよりも長いとき
ImmGetCompositionString の戻り値は 0 になるみたいです

ありがとうございました




602 名前:デフォルトの名無しさん mailto:sage [2010/04/14(水) 23:25:34 .net]
>>600
本スレだったら
len(buf)ってなにそれ? 普通はbuf.len()だろww
ってなってるな。

603 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 00:41:12 .net]
>>602
こっちくんな

604 名前:デフォルトの名無しさん mailto:sage [2010/04/15(木) 17:50:47 .net]
    ヘ⌒ヽフ
   ( ・ω・) dd
   / ~つと)


605 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 19:20:41 .net]
C++アプリにPythonを組み込んでみたいんだけど、
BlenderってアプリはPCにPythonをインストールしてないとPython動かせないじゃないですか。
アプリからPythonスクリプトを実行するにはPython環境を必要とするものなんですか?

あとマルチコアCPUだと実行が遅くなるって本当ですか?

606 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 21:37:41 .net]
Ruby使うと良いよ

607 名前:デフォルトの名無しさん mailto:sage [2010/05/02(日) 22:17:28 .net]
>>606
ありがとうございます
Rubyの方が組み込み言語として枯れてるんですか?
PythonやJavaScriptに比べるとユーザ少そうだし一番トラブりそうと思い込んでました

608 名前:デフォルトの名無しさん mailto:sage [2010/05/03(月) 12:46:46 .net]
cython

609 名前:デフォルトの名無しさん [2010/05/05(水) 10:14:49 .net]
    ┌─┐
    │●│
    └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘      おっぱい!おっぱい!


610 名前:デフォルトの名無しさん [2010/05/28(金) 09:39:44 .net]
保守age

611 名前:デフォルトの名無しさん [2010/05/29(土) 12:08:14 .net]
リバースエンジニアリング ―Pythonによるバイナリ解析技法が欲しい



612 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 19:47:46 .net]
LLでバイナリってのも今ひとつ何をねらってるのかよくわからんな

613 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 19:58:26 .net]
C言語でsegvしながらガリガリ切り貼りするよりだいぶ楽なことが多いと思う

614 名前:デフォルトの名無しさん mailto:sage [2010/06/11(金) 21:08:02 .net]
>>612
解析なら別にいいんじゃね?

615 名前:デフォルトの名無しさん mailto:sage [2010/06/19(土) 18:35:21 .net]
ここだけまったりした雰囲気だな。

∧_∧
( ´・ω・) みなさん、お茶が入りましたよ・・・・。
( つ旦O
と_)_) 旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦旦

616 名前:デフォルトの名無しさん mailto:sage [2010/10/24(日) 17:22:06 .net]
本スレ荒れてるなぁ...

617 名前:デフォルトの名無しさん mailto:sage [2010/10/24(日) 21:09:59 .net]
本スレが荒れてるんじゃない
君の心が荒れているんだ!

618 名前:デフォルトの名無しさん [2010/10/24(日) 22:43:02 .net]
   ┌─┐
   │●│
   └─┤
   _   ∩
  ( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘

619 名前:デフォルトの名無しさん mailto:sage [2010/10/27(水) 01:57:33 .net]
何でNoneオブジェクトまでINCREF,DECREFしてるん?

620 名前:デフォルトの名無しさん mailto:sage [2010/10/27(水) 02:20:57 .net]
よくわかんないけど、毎回Noneかどうか比較するよりもINCREF, DECREFしてGCの対象から外した方が軽かったんじゃない?

621 名前:デフォルトの名無しさん mailto:sage [2010/10/28(木) 01:39:44 .net]
pyscripterのバージョンがいつの間にか上がってる
開発に波あるみたい



622 名前:デフォルトの名無しさん mailto:sage [2010/10/30(土) 03:51:24 .net]
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
httpd = HTTPServer(('', 8080), SimpleHTTPRequestHandler)
httpd.serve_forever()


623 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 15:01:38 .net]
twitter.com/yukihiro_matz/statuses/29317109670

yukihiro_matz: 英語圏でRubyとPythonを比較する記事を見ることが少なくなってきた
のは、RubyとPythonでクラスタが分離してきたからか。逆に日本語でRubyとPythonを
比較 する記事を見かけるのは国内でのPythonの地位が向上したからか。

               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <こいつ最高にアホだお
  \     ` ー'´     //
  / __        /
  (___)      /

624 名前:デフォルトの名無しさん mailto:sage [2010/11/01(月) 15:04:29 .net]

               ∩_
              〈〈〈 ヽ
      ____   〈⊃  }
     /⌒  ⌒\   |   |
   /( ●)  (●)\  !   !
  / :::::⌒(__人__)⌒:::::\|   l
  |     |r┬-|       |  / <こいつ最高にアホだお
  \     ` ー'´     //
  / __        /
  (___)      /

625 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 01:04:22 .net]
まつもと君。まだそんなこと言ってるのか・・・・

626 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 16:27:18 .net]
アップルに捨てられたからでしょうに・・・

627 名前:デフォルトの名無しさん mailto:sage [2010/11/02(火) 16:43:35 .net]
AppleはMacRuby開発してんじゃん

628 名前:デフォルトの名無しさん [2010/12/27(月) 04:00:12 .net]
age

629 名前:デフォルトの名無しさん [2011/01/16(日) 14:25:59 .net]
Python って、インデントでブロックを表現する変態言語だけど、
実は Ruby 並には機能が詰まった言語らしいくらいのイメージしかないんだけど。
正直触ったことがほぼないからよくわからん。

そもそも、あまり書籍を見かけないし、web のフレームワークの話もみかけない。
Google にはよくしてもらっている程度しか優位性をしらないんだけど。


630 名前:デフォルトの名無しさん mailto:sage [2011/01/16(日) 14:39:12 .net]
>>629
まあ、まずはざっとこれ読んでくれ。
stackoverflow.com/questions/1113611/what-does-ruby-have-that-python-doesnt-and-vice-versa

631 名前:デフォルトの名無しさん mailto:sage [2011/01/16(日) 14:49:41 .net]
>>630
ざっとみたが、英語は不得意なので『インデントでブロックを表現する変態言語』くらいしか伝わらなかった。




632 名前:デフォルトの名無しさん mailto:sage [2011/01/16(日) 17:14:30 .net]
どうせコード書くときにはpythonに限らず適宜インデントすんだろ。
むしろ余計な{}なんかがないだけよっぽど読みやすい。

633 名前:デフォルトの名無しさん mailto:sage [2011/01/16(日) 20:44:21 .net]
大学のときまったくインデントを使わずにJavaを書く教授がいた

634 名前:デフォルトの名無しさん mailto:sage [2011/01/16(日) 20:50:07 .net]
>>632
はげ

635 名前:デフォルトの名無しさん mailto:sage [2011/01/16(日) 20:51:24 .net]
おまいらスレ違い

あっちいけ
hibari.2ch.net/test/read.cgi/tech/1169473442/

636 名前: 忍法帖【Lv=1,xxxP】 mailto:sage [2011/05/31(火) 22:41:13.51 .net]
test


637 名前:デフォルトの名無しさん mailto:sage [2011/06/01(水) 21:45:06.41 .net]
てすてす


638 名前:デフォルトの名無しさん mailto:sage [2011/06/01(水) 21:54:40.40 .net]
改行

テスト


639 名前:デフォルトの名無しさん mailto:sage [2011/06/01(水) 22:52:12.69 .net]
quit()


640 名前:デフォルトの名無しさん mailto:sage [2011/06/02(木) 05:14:30.59 .net]
test

641 名前:デフォルトの名無しさん mailto:sage [2011/06/02(木) 18:13:46.44 .net]
hogehuga




642 名前: 忍法帖【Lv=2,xxxP】 mailto:sage [2011/06/02(木) 20:35:34.45 .net]
test


643 名前: 忍法帖【Lv=3,xxxP】 mailto:sage [2011/06/02(木) 20:46:14.23 .net]
あり〜ん


644 名前:デフォルトの名無しさん mailto:sage [2011/06/03(金) 21:13:57.44 .net]
test

645 名前:デフォルトの名無しさん mailto:sage [2011/06/04(土) 00:00:48.90 .net]
ウンチ

646 名前:デフォルトの名無しさん mailto:sage [2011/06/04(土) 07:49:51.69 .net]
お!これは。
てすと


647 名前:デフォルトの名無しさん mailto:sage [2011/06/04(土) 14:07:03.65 .net]
ここのtestってpythonのスクリプトで書き込みのテストをしていると考えていいでしょうか?

648 名前:デフォルトの名無しさん mailto:sage [2011/06/04(土) 19:50:39.90 .net]
Python 3.2.1 のリリースがまた延期されちゃったね。

649 名前:デフォルトの名無しさん mailto:sage [2011/06/05(日) 01:22:46.74 .net]
○ンチ専用

650 名前:デフォルトの名無しさん mailto:sage [2011/06/10(金) 21:09:52.09 .net]
6月19日にFinal出るのかね?本当に。

651 名前:デフォルトの名無しさん mailto:sage [2011/06/11(土) 00:44:15.80 .net]
Yes, I do.



652 名前:デフォルトの名無しさん mailto:sage [2011/06/18(土) 05:10:42.38 .net]
出るかな出るかな〜?

653 名前:デフォルトの名無しさん mailto:sage [2011/06/19(日) 06:52:54.02 .net]
いよいよ今日だね。

654 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 21:07:26.68 .net]
出たのかな?


655 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 21:51:47.26 .net]
勉強スレの方にアンチが沸いてるのに、こっちはまったり。

656 名前:デフォルトの名無しさん mailto:sage [2011/06/20(月) 23:25:14.63 .net]
超初心者スレが無くなっちゃったから行き場がないのでは?


657 名前:デフォルトの名無しさん mailto:sage [2011/06/21(火) 21:23:35.59 .net]
出ませんでしたよ。

658 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 21:31:08.65 .net]
When will Django run on Python 3.x

659 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 22:35:55.73 .net]
まだ枯れていない発展途上の言語だから仕方ないけど、
バージョンの乱立はどうにかならないもんかな。

660 名前:デフォルトの名無しさん mailto:sage [2011/06/22(水) 23:08:19.13 .net]
あれ?もう4.xでも出たの?

661 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 06:00:56.86 .net]
Perl の 6 はいつになるのよ。



662 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 06:37:41.57 .net]
菅の辞任よりも早いかも知れないな

663 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 06:58:55.85 .net]
今年だけでも 2.5.6, 2.6.7, 2.7.2, 3.0.1, 3.1.4, 3.2 出てる
小数点第一位が違うと別バージョンなんじゃないの?
それとも、2系 と 3系 の 2つだけという解釈なのかしら

664 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 07:27:48.43 .net]
2.xでは、2.7系以外は互換性の都合上古いの使ってる人のためのバグフィックスじゃないの?
3.xは絶賛開発中。

665 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 11:31:33.93 .net]
世の中にはバージョンが 0.1 上がっただけで
文法の下位互換性がなくなる言語があるんよ

666 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 12:36:51.88 .net]
GAEが2.7じゃないのが

667 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 19:34:47.24 .net]
古くなったものをすぐに切り捨ててしまうと
「こんなサイクルの短かい言語を使えるかいな」
となってしまうから、メンテナンスは必要だよね。


668 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 20:42:51.05 .net]
バージョンアップのたびに大きく仕様が変わるが、滅多に上がらないから問題ない
有名な言語があります。

669 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 20:43:51.47 .net]
C++ かな?

670 名前:デフォルトの名無しさん mailto:sage [2011/06/23(木) 21:05:14.39 .net]
そういった意味では面倒見がいいのかなあ

671 名前:デフォルトの名無しさん mailto:sage [2011/06/24(金) 01:43:13.69 .net]
COBOL超安定。2002で大冒険だけど。



672 名前:デフォルトの名無しさん mailto:sage [2011/06/24(金) 06:03:49.41 .net]
2系は 2系として残り続けていくわけだね

673 名前:デフォルトの名無しさん mailto:sage [2011/06/24(金) 23:17:00.62 .net]
いつかまとまるさ

674 名前:デフォルトの名無しさん mailto:sage [2011/06/26(日) 21:31:24.05 .net]
.

675 名前:デフォルトの名無しさん mailto:sage [2011/06/27(月) 20:30:45.31 .net]
いまいち使い道がわからない

676 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 02:21:39.22 .net]
test

677 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 19:22:13.14 .net]
いめぇじきゃらが蛇なんてイケてない

678 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 21:34:26.95 .net]
いつまで移行に時間かけてるんだろうね

679 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 21:51:48.76 .net]
おいC99の悪口はやめろ

680 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 21:56:34.78 .net]
おいRubyの悪口はやめろ

681 名前:デフォルトの名無しさん mailto:sage [2011/06/28(火) 23:48:28.99 .net]
ふむ



682 名前:デフォルトの名無しさん mailto:sage [2011/06/29(水) 18:06:30.14 .net]
ふも?

683 名前:デフォルトの名無しさん mailto:sage [2011/06/29(水) 19:21:38.59 .net]
ふもふも

684 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 06:06:46.47 .net]
ふーもー

685 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 18:33:46.27 .net]
fumo

686 名前:デフォルトの名無しさん mailto:sage [2011/06/30(木) 20:36:54.78 .net]
fumo-fumo-land

687 名前:デフォルトの名無しさん mailto:sage [2011/07/01(金) 06:31:03.19 .net]
oha-

688 名前:天使 ◆uL5esZLBSE mailto:sage [2011/07/03(日) 02:31:27.03 .net]
>>681



ゴミはゴミ

689 名前:デフォルトの名無しさん mailto:sage [2011/07/03(日) 04:28:15.82 .net]
>>688
ふも?

690 名前:デフォルトの名無しさん mailto:sage [2011/07/03(日) 07:02:50.79 .net]
天使さん戻っておいでよ

691 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 19:35:06.72 .net]
Ruby 1.8.7-p352 をビルドした人いますか?



692 名前:デフォルトの名無しさん mailto:sage [2011/07/04(月) 19:58:56.08 .net]
>>691
Rubyスレで聞いたほうが…

693 名前:デフォルトの名無しさん mailto:sage [2011/07/05(火) 18:10:17.85 .net]
スレが乱立しすぎてると思うんだよね
Pythonは本家スレ一本でいくべき

694 名前:天使 ◆uL5esZLBSE mailto:sage [2011/07/05(火) 19:32:06.59 .net]
Rubyバカにしてる子ってさ
変数に$ついてる言語触ってるって事だよね

いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう?

土方が何をいっても

695 名前:デフォルトの名無しさん mailto:sage [2011/07/05(火) 20:02:35.38 .net]
Python は日本でもかなり人気が出てきたね
日本語訳の本がたくさん出てきたからかな

696 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 19:04:59.26 .net]
list
[1, 2, 3, 4, 5, 6, 7, 8, 9]
['apple', 'google', 'micro']

697 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 19:07:10.62 .net]
tuple
('a', 'b', 'c', 'd', 'e')

698 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 19:08:19.03 .net]
set
{1, 2, 3, 4, 5, 6, 7, 8, 9}

699 名前:デフォルトの名無しさん mailto:sage [2011/07/06(水) 19:10:41.75 .net]
dict
{'2ch': 'good', 'twitter': 'bad', 'facebook': '?'}

700 名前:天使 ◆uL5esZLBSE mailto:http://www.geocities.jp/c_zelos/soto/tensi_no_aori.zip [2011/07/06(水) 19:43:02.58 .net]
∨∨∨∨
(((((((( Rubyバカにしてる子ってさ ))))))))(嘲ッッッッ笑
∧∧∧(爆ッッッ笑!

(((((( 変数に$ついてる言語触ってるって事だよね ))))))(爆ッッ笑ッ!!
∧∧∧∧∧∧(爆笑ッッ
∨∨∨
(((((((( いちいちSHIFT+4キーおして $ 打ちまくってる感触はどう? ))))))))(嘲笑ッッw!!嘲笑!
∧∧∧(wwッ
∨∨∨∨∨
(((((( 土方が何をいっても ))))))(爆ッッッ笑ッ!!ww!!
∧∧∧∧(爆!!爆ッ!!



天使#test_s

「天使の煽り」の提供でお送りしました

701 名前:デフォルトの名無しさん mailto:sage [2011/07/08(金) 20:40:11.51 .net]
ひじかたと読む



702 名前:デフォルトの名無しさん mailto:sage [2011/07/10(日) 20:02:37.12 .net]
3.2.1はまた出ないのかしら。
工程管理どうなってるの?

703 名前:デフォルトの名無しさん [2011/07/12(火) 19:03:32.70 .net]
出てるよ。
Pythonの評判を落すような発言は慎しみたまえ。


704 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 19:38:07.60 .net]
てst

705 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 20:19:23.33 .net]
test

706 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 20:27:29.40 .net]
ninja

707 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 20:41:57.55 .net]
test age

708 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 22:58:33.86 .net]


709 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 23:02:12.15 .net]
0x00c4

710 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 23:02:54.33 .net]
u00c4

711 名前:デフォルトの名無しさん mailto:sage [2011/07/12(火) 23:03:50.85 .net]
Ä



712 名前:デフォルトの名無しさん mailto:sage [2011/07/13(水) 11:15:14.32 .net]
Cythonでインスタンスを複製する方法ってないですか?
copy.copyやcopy.deepcopyだと、self.aやself.Aの値がコピーされず、空になるのですが
通常のPythonのままならうまくいきます

#abc.pyx
cdef class abc:
 cdef:
  public int a
  public list A

 def __init__(self,a):
  self.a = a
  self.A = [a]

 def Add(self,b):
  self.A.append(b)

from abc import *
i=abc(1)
i.A # [1]
j = copy.deepcopy(i)
j.A #
i.Add(2)
i.A # [1,2]
j.A #
j.Add(3)#AttributeError 'NoneType' object has on attribute 'append'


713 名前:デフォルトの名無しさん mailto:sage [2011/07/13(水) 11:17:06.50 .net]
あれ?レスする場所が間違えてた…
Pythonのお勉強にレスするつもりが、すいません

714 名前:デフォルトの名無しさん mailto:sage [2011/07/13(水) 19:52:13.07 .net]
まぎらわしいこんなスレはさっさと消化するに限る

715 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 19:20:14.77 .net]
Python ready

716 名前:デフォルトの名無しさん mailto:sage [2011/07/14(木) 22:43:15.18 .net]
Go

717 名前:デフォルトの名無しさん mailto:sage [2011/07/15(金) 17:37:27.69 .net]
>>> exit()

718 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 06:04:08.94 .net]
indent

719 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 06:38:11.80 .net]
ninja!

720 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 07:06:46.82 .net]
ninja

721 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 08:01:38.12 .net]
nin-nin



722 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 17:56:36.97 .net]
huga-

723 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 20:03:11.91 .net]
test

724 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 20:49:14.14 .net]
ume

725 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 21:37:49.23 .net]
test

726 名前:デフォルトの名無しさん mailto:sage [2011/07/16(土) 23:11:07.82 .net]
test

727 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 06:09:06.95 .net]
にん

728 名前:デフォルトの名無しさん mailto:sage [2011/07/17(日) 06:28:27.83 .net]
ビルドできん

729 名前:デフォルトの名無しさん mailto:sage [2011/07/21(木) 18:13:54.15 .net]
.

730 名前:デフォルトの名無しさん mailto:sage [2011/07/22(金) 06:40:02.39 .net]
test

731 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 06:17:17.71 .net]
てす



732 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 18:20:54.15 .net]
下げ進行で

733 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 18:21:36.89 .net]
連続投稿が出来無いだと...

734 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 18:22:01.76 .net]
でけた

735 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 19:08:01.19 .net]
てす

736 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 19:08:34.25 .net]
さげ

737 名前:デフォルトの名無しさん mailto:sage [2011/07/25(月) 19:08:53.45 .net]
先は長いのう

738 名前:デフォルトの名無しさん [2011/07/26(火) 02:04:56.46 .net]
ぴちょん

739 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 06:17:57.47 .net]
おは

740 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 09:18:09.21 .net]
こん

741 名前:デフォルトの名無しさん [2011/07/26(火) 11:25:11.63 .net]
番地は



742 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 18:23:32.06 .net]
右向いて

743 名前:デフォルトの名無しさん mailto:sage [2011/07/26(火) 21:04:46.47 .net]
Linux村から

744 名前:デフォルトの名無しさん mailto:sage [2011/07/27(水) 06:49:11.93 .net]
おは

745 名前:デフォルトの名無しさん [2011/07/27(水) 07:00:09.92 .net]
乙女の”お”

746 名前:デフォルトの名無しさん mailto:sage [2011/07/28(木) 06:28:23.42 .net]
おは

747 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 06:21:29.02 .net]
おは

748 名前:デフォルトの名無しさん mailto:sage [2011/07/29(金) 19:16:41.34 .net]
おやすみ

749 名前:デフォルトの名無しさん mailto:sage [2011/07/30(土) 05:13:35.98 .net]
おは

750 名前:デフォルトの名無しさん [2011/07/31(日) 05:17:01.46 .net]
ヨーグルト

751 名前:デフォルトの名無しさん mailto:sage [2011/08/02(火) 05:49:50.73 .net]
おは



752 名前:デフォルトの名無しさん mailto:sage [2011/08/05(金) 04:57:36.81 .net]
大好きだよ

753 名前:デフォルトの名無しさん mailto:sage [2011/08/15(月) 23:03:14.48 .net]
Python 3.2.1

754 名前:デフォルトの名無しさん mailto:sage [2011/09/07(水) 00:31:39.40 .net]
3.2.2 が来てた。

755 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 23:09:14.13 .net]
新バージョンが出ても話題にならないのは何故だ?

756 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 13:27:57.72 .net]
坊やだからさ

757 名前:デフォルトの名無しさん [2011/11/24(木) 13:18:39.72 .net]
ほしゅ

758 名前:デフォルトの名無しさん mailto:sage [2011/12/03(土) 19:16:50.29 .net]
なぜ Python ユーザーは少ないの?
ttp://python.matrix.jp/columns/column2/

759 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 01:01:19.32 .net]
馬鹿には無理

760 名前:デフォルトの名無しさん mailto:sage [2012/02/21(火) 01:55:27.43 .net]
プログラミング言語界のツチノコだと思って許してくれ頼む

761 名前:デフォルトの名無しさん mailto:sage [2012/03/03(土) 13:49:10.31 .net]
2と3の互換性がなくて糞



762 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 02:46:18.42 .net]
>>761
それはrubyも同じだしなぁ・・・
それより、pythonのオブジェクト指向がC++/Java/C#/Rubyより独特すぎて戸惑う

>>> class Foo:
pass

メソッドもフィールドも無いクラスを定義

フィールドやメソッドを使おうとすると、もちろんエラー

foo = Foo()
foo.a これはエラー

ところが、

foo.a = 10

とかすると、

何もフィールドが無かったクラスにフィールドが生まれる(pythonではフィールドのことをアトリビュートと呼ぶらしいけど)

動的言語らしいと言えばそうだけど・・・実績こそ世界的には多いけど、保守とか考えた設計じゃないよなぁ・・・



763 名前:デフォルトの名無しさん mailto:sage [2012/03/06(火) 03:14:14.14 .net]
>>762
それはrubyも同じだしなぁ・・・

764 名前:デフォルトの名無しさん mailto:sage [2012/03/08(木) 02:34:19.89 .net]
javascriptもやで〜

765 名前:デフォルトの名無しさん mailto:sage [2012/03/12(月) 14:35:53.78 .net]
説明しよう、つまり、お風呂にヘビがいて(本当はモンティだけど)、穴に入ってしまた、ちょうど時を同じくRubyの指輪が排水口に、仕方ないので、ジャバ。

こう言っ具合の、開発者が、アンチに書きこむのである。

766 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 19:58:25.33 .net]
つーか、Rubyのアンチスレに比べて全然書き込まれないな
不便とか、不満とか、無いのん?


767 名前:デフォルトの名無しさん mailto:sage [2012/03/17(土) 22:19:59.68 .net]
はい

768 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 05:09:48.77 .net]
日本人を叩きたがる日本人は多い

769 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 06:40:46.01 .net]
pythonはなぜかアンチスレの方が親切な人が多い

770 名前:デフォルトの名無しさん mailto:sage [2012/03/18(日) 10:04:09.37 .net]
ツンデレ

771 名前:デフォルトの名無しさん [2012/03/18(日) 22:37:19.23 .net]
あげ



772 名前:デフォルトの名無しさん mailto:sage [2012/03/22(木) 11:18:36.99 .net]
馬鹿には無理

773 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 15:15:52.51 .net]
グイド大激怒!こんな糞コミッタ−しか育たないんならPython開発なんて意味ないね
ikura.2ch.net/test/read.cgi/bread/1325584365/

774 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 15:27:22.93 .net]
>>773
ゲイドはそんなことを言わない。

775 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 15:36:43.57 .net]
Linusなら言うかもな

776 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 16:05:35.50 .net]
>>775
言ってるよ、むしろこっちが早い

[ Linux ] 【Linux】カーネル総合6【Kernel】
543 名前:login:Penguin [sage]: 2012/03/25(日) 00:29:35.22 ID:QmHRZWVc
リーナス大激怒!こんな糞コミッタ−しか育たないんならカーネル開発なんて意味ないね
ikura.2ch.net/test/read.cgi/bread/1325584365/

777 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 16:14:29.71 .net]
>>776
リーナスも言わない。
ストールマンなら言いそう。

778 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 16:22:05.00 .net]
>>762
いまさらだが __slots__

779 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 17:43:33.83 .net]
ttp://linux.slashdot.jp/story/12/03/01/0913255/Linus-Torvalds%E6%B0%8F%E3%80%81openSUSE%E3%81%AE%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E4%BB%95%E6%A7%98%E3%81%AB%E6%86%A4%E3%82%8B
> ワイヤレスネットワークへのアクセスや、用紙のプリントアウト、日付時刻設定の変更を
> 行うのにもルートパスワードが必要だと考えているなら、お願いだから今すぐ死んで頂きたい。

ttp://www.atmarkit.co.jp/fsecurity/special/103kernelwatch/kernelwatch01.html
> セキュリティをやってるやつらは狂っている。

リーナスなら言ってもおかしくない。

780 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 17:49:24.92 .net]
Linuxのアクセス権限管理が単純すぎるのがダメなんだがや。

781 名前:デフォルトの名無しさん mailto:sage [2012/03/25(日) 18:07:34.44 .net]
Unixの基本設計がそうなんだから諦めろ、って面もあるな



782 名前:デフォルトの名無しさん [2012/10/07(日) 21:30:55.06 .net]


783 名前:デフォルトの名無しさん [2012/10/08(月) 01:42:38.19 .net]
「人魚さんにもパイソンはある!」

784 名前:デフォルトの名無しさん mailto:sage [2012/10/17(水) 10:01:27.56 .net]
スレッド乱立荒らし出没中につき
dat落ちしないように保守

785 名前:デフォルトの名無しさん mailto:sage [2013/01/11(金) 09:22:23.17 .net]
スレチですまんがpython愛してる

786 名前:デフォルトの名無しさん [2013/01/11(金) 10:02:39.75 .net]
age

787 名前:デフォルトの名無しさん mailto:sage [2013/01/15(火) 18:36:49.11 .net]
だす

788 名前:デフォルトの名無しさん mailto:sage [2013/01/25(金) 02:57:36.79 .net]
Python 2.7.3, last updated Apr 10, 2012
インストールしました(^o^)/

789 名前:デフォルトの名無しさん mailto:sage [2013/01/25(金) 03:07:54.07 .net]
C:\work>python -V
Python 2.7.3

790 名前:デフォルトの名無しさん mailto:sage [2013/05/20(月) 18:57:27.66 .net]
「言葉(服装風紀世相秩序)の乱れ」はそう感じる人自身の心の乱れの自己投影。他力本願で問題解決力が低く対外評価を気にする不寛容者ほど、自己防衛の為にマナー規律モラル礼儀作法ルール法律を必要とする。嫌悪憤怒激昂は無知無明無能の自己証明/感情自己責任論

791 名前:デフォルトの名無しさん mailto:sage [2013/05/20(月) 19:02:01.57 .net]
○ちんこ
toro.2ch.net/test/read.cgi/tech/1249737531/



792 名前:デフォルトの名無しさん [2013/08/30(金) NY:AN:NY.AN .net]
みなさんお世話になりました
明日で2ch終了らしいので
今のうちに最後のご挨拶をしておきます

793 名前:デフォルトの名無しさん mailto:age [2014/01/02(木) 04:06:41.29 .net]
ぬるぽ

794 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 08:21:47.92 .net]
len(list)とか書くの面倒だからlist.len()とさせろ
ついでに引数の括弧も無くしてlist.lenと書かせろ
hoge.to_sとかhoge.to_aとかhoge.to_iとかやらせろ

795 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 09:44:50.41 .net]
むしろrubyで先頭に「#なんちゃら」とか宣言すればインデントをブロックとして扱ってくれるようにすればいいんじゃ
唯一Pythonが勝ってるところだし
○○ do
 〜
end

○○:
 〜
にするだけなんて簡単でしょ

○○ do |key, value|
 〜
end

○○: |key, value|
 〜
でいいし

796 名前:デフォルトの名無しさん mailto:sage [2014/01/02(木) 10:01:32.67 .net]
pythonの関数とメソッド入り混じってるのは本当に気持ち悪い
メソッドで統一しろと

797 名前:デフォルトの名無しさん mailto:sage [2014/01/03(金) 15:10:42.36 .net]
Rubyになれると他の言語の括弧の入れ子が書きづらい上に見づらくてしゃーない

798 名前:デフォルトの名無しさん mailto:sage [2014/01/04(土) 18:11:35.86 .net]
>>794
python.rdy.jp/wiki.cgi?page=FAQ#p10

799 名前:デフォルトの名無しさん mailto:sage [2014/01/05(日) 00:53:12.92 .net]
>>796
関数で統一されてるのがPythonでしょ

800 名前:デフォルトの名無しさん mailto:sage [2014/01/07(火) 17:09:38.10 .net]
何故メソッドを廃して読みづらく書きづらい関数を用意するのか
謎である

801 名前:デフォルトの名無しさん mailto:sage [2014/01/07(火) 22:22:08.01 .net]
元々、Pythonは手続き型スクリプト言語として設計されて誕生したからね
そして、後からオブジェクト指向や関数型の特性を「接ぎ木」した

この「接ぎ木」は別段に変な事でも何でもなくて、
手続き型言語Cにオブジェクト指向を「接ぎ木」したC++が代表例だし、
最近はJavaに関数型のラムダ式が「接ぎ木」されようとしている
またC++やJavaでは、後から総称型が「接ぎ木」されてきた

Pythonは、これからも進化し続けるであろう
標準ライブラリの後方互換性を捨て去り、
たとえ(過去にもあった)Python 3.x から 4.x への世代間断絶があろうとも、
世界中のプログラマは新バージョンへと華麗に移行していく
(技術レベルの低い、日本のPythonプログラマは置いてきぼりかな....)



802 名前:デフォルトの名無しさん mailto:sage [2014/01/08(水) 17:21:21.57 .net]
> Pythonは手続き型スクリプト言語として設計されて誕生したからね
よくRubyユーザーはこういうんだけど、
そんな事実はどこにもないから。

> たとえ(過去にもあった)Python 3.x から 4.x への世代間断絶があろうとも、
いや、断絶してないから。
sixみたいに違いを吸収するライブラリまであるし。
数年置きに互換性がなくなる某スクリプト言語と違って
Pythonが後方互換を切ったのは20年で1回だけだ。
つーか、Cですら初期のK&Rの頃とは文法が違う。

803 名前:デフォルトの名無しさん mailto:sage [2014/01/08(水) 17:38:51.66 .net]
20年も開発してたか?

804 名前:デフォルトの名無しさん mailto:sage [2014/01/08(水) 17:46:20.68 .net]
>>802
>> たとえ(過去にもあった)Python 3.x から 4.x への世代間断絶があろうとも、
>いや、断絶してないから。

これは、Python 2.x と同 3.x の世代間に存在する、
標準ライブラリ互換性の断絶ではないのかな?

> 43 名前: デフォルトの名無しさん Mail: 投稿日: 2014/01/08(水) 17:35:05.69
> ちなみに、python2と3でmap関数の返り値違う
> python2はリスト型
> >>> type(map(add, a))
> <type 'list'>
> python3はmap型
> >>> type(map(add, a))
> <class 'map'>

805 名前:デフォルトの名無しさん mailto:sage [2014/01/08(水) 17:50:33.23 .net]
>>802
もう一つの(過去にあった)標準ライブラリ互換性断絶の例

> 940 名前: デフォルトの名無しさん Mail: sage 投稿日: 2013/12/31(火) 03:44:40.65
> >>939 エラーにならなくなった理由は別にある。
>
> 2.x
> range -> リストを作る。OverflowErrorでなくとも、大きなメモリを確保しようとして
> MemoryErrorになることもなる。
> xrange -> range型のオブジェクトを返す。
> rangeオブジェクトの各属性は 構造体で (Cの)long型で宣言されてるので、値が範囲外だと
> OverflowError
>
> 3.x
> range -> range型のオブジェクトを返す。rangeオブジェトの各属性の型はPyObject。
> pythonの数値(多倍長整数)を持つようになったので、2.xの時の制限はなくなった。

806 名前:デフォルトの名無しさん mailto:sage [2014/01/08(水) 17:58:26.59 .net]
>>802
>よくRubyユーザーはこういうんだけど、

Rubyの話題はスレ違い

Rubyの話がしたいなら「Rubyについて(アンチ専用)」へ
Python vs. Ruby が希望であれば、バトロワスレへ

807 名前:デフォルトの名無しさん mailto:age [2014/01/08(水) 18:26:01.04 .net]
Python関連スレをちょっとでも覗けば、
序盤から終盤まで 2.x or 3.x の話題だらけじゃん。
これでもPyhtonの後方互換性に問題無しと言えるなんて、
頭がおかしいんじゃないのかなあ....。

808 名前:デフォルトの名無しさん mailto:sage [2014/01/12(日) 18:23:48.38 .net]
なぜ多くのプロジェクトがPythonの古いバージョンをサポートし続けるのか
ストーリー by headless 2014年01月12日 12時55分
developers.slashdot.jp/story/14/01/11/2115245/

809 名前:デフォルトの名無しさん [2014/01/17(金) 07:48:18.21 .net]
ペコ「ロバwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww」

810 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 08:13:37.27 .net]
>>795
おれインデント自信が無いよ。
そんな1段なら、わかるけど、実際は、もっともっとふかいのだ。
んなもんわかるわけないよ。みんなどうやってるんだろう?

811 名前:デフォルトの名無しさん mailto:sage [2014/01/17(金) 08:14:46.62 .net]
Python用にかきかえなければならないとおもうと…いやんなるよ
将来のためにそうするべきか。Pythonをあきらめるべきか



812 名前:デフォルトの名無しさん mailto:sage [2014/01/18(土) 02:49:24.12 .net]
>>810
書く時は、エディタのアシスト任せ。後でツールで一括して自動整形。

813 名前:デフォルトの名無しさん mailto:sage [2014/01/18(土) 14:57:24.86 .net]
>>810
インデントの深さを表示できるエディタを使うとか
いくらでもやりようはあるでしょ

814 名前:デフォルトの名無しさん mailto:sage [2014/01/18(土) 21:25:44.40 .net]
python初心者だけど面白いよ面白い!でもpythonerが排他的っぽい;;

815 名前:デフォルトの名無しさん mailto:sage [2014/01/18(土) 23:22:11.28 .net]
代入演算子が値ではなくてリファレンスの代入という仕様はハマるな。
みんな慣れてるの?
他の言語と基本的なことが違い過ぎる。

816 名前:デフォルトの名無しさん mailto:sage [2014/01/18(土) 23:43:51.88 .net]
それ Python に限った話じゃないよ

817 名前:デフォルトの名無しさん mailto:sage [2014/01/19(日) 05:38:49.85 .net]
Pythonは他の言語からの人がはまる仕様が結構ある。
デフォルト引数が評価されるタイミングとか。

FAQに纏まってるので、早めに目を通すといいよ

818 名前:デフォルトの名無しさん mailto:sage [2014/01/19(日) 21:58:13.83 .net]
オブジェクトを指す変数がリファレンスだなんて、ほとんどの言語であたりまえだわ。
むしろポインタを生で扱わないといけないので、明示的にデリファレンスをしないと
いけない、CとC++のほうが例外的。

PHPは、何も考えてない言語仕様だから変なことになってるけど、まぁPHPだからw

819 名前:デフォルトの名無しさん mailto:sage [2014/01/19(日) 23:35:53.16 .net]
>代入演算子が値ではなくてリファレンスの代入という仕様はハマるな。

これは、割とどの言語でも繰り返されてきた話題なんだけど、
言語間での"リファレンス/参照"という語句の、食い違いによる説明の混乱というものがあって

C++で言う(alias的な機能の)"リファレンス/参照"は、Pythonにはなく、
C/C++の語句で言うなら、Pythonでのオブジェクトのリファレンスとは、
単に"オブジェクトの構造体を指すポインタの値"。

820 名前:デフォルトの名無しさん mailto:sage [2014/01/20(月) 15:04:22.06 .net]
Aという言語を使ってきた人がBという言語を使い始めた時にハマるポイント、
なんてのは、どんな組み合わせでもまず間違いなく絶対あるよな。

821 名前:デフォルトの名無しさん [2014/02/02(日) 00:08:23.72 .net]
インデントの使用で読みやすいとは言うが、糖衣構文やデコレータバンバンだから
実際の現場で使われているアプリのレベルのソースはちょっと分かりにくい

よくある話だが、教育用と実用性を両立させようとするとどうしてもこうなる



822 名前:デフォルトの名無しさん mailto:sage [2014/02/02(日) 10:27:17.80 .net]
教育用として設計されてはいねーし。デマ。

823 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 01:56:08.47 .net]
デコレータで読みにくくなるなんて
そりゃ知能が絶望的に足りてないんだよ

824 名前:デフォルトの名無しさん mailto:sage [2014/02/03(月) 10:25:51.27 .net]
デコレータ使わず、糖衣構文を展開した形で書かれていれば理解できるんだい、
(と信じようとしている)。

825 名前:デフォルトの名無しさん [2014/02/13(木) 21:58:12.55 .net]
時間周りがめんどくさい

826 名前:デフォルトの名無しさん mailto:sage [2014/03/08(土) 01:00:37.80 .net]
日本ではPythonはもう終わりだ...
発展はない
始めるのはゆとりばかり
質問なんかも酷いもんだ
PHPより遥かに劣る

827 名前:デフォルトの名無しさん mailto:sage [2014/03/29(土) 23:09:40.53 ID:O49NFKnh.net]
osとshutilに分かれてる意味がわからない。
日付が使いにくい。
lenがオブジェクトのメンバに無いのがおかしい。
absがmathじゃないのはおかしい。


はじめたばかりだけど、ざっと見てなんかライブラリがとっ散らかってる印象。

828 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 11:06:16.32 ID:Ubp7wCfs.net]
気になるのは最初だけだから
通過してしまえば一瞬で忘れられる
そんな小さいことにいつまでも構ってられるほど python の世界は狭くはない
安心して使い続けるがよい

829 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 13:08:26.22 ID:uSRubpe1.net]
ライブラリがとっ散らかってると、マニュアル引くとき困るんだが。
このくそライブラリのせいで学習曲線絶対急になってるよね。イラつくわ。

830 名前:デフォルトの名無しさん mailto:sage [2014/03/30(日) 20:41:33.71 ID:szVVotNM.net]
sysとosとか、きちんと意味があって分けられているけどな。

なんでもグローバル名前空間にぶち込んであるのが好きならPHP使ってろよw

831 名前:デフォルトの名無しさん mailto:sage [2014/04/09(水) 23:19:31.82 ID:wiNih1s9.net]
また始まった



832 名前:デフォルトの名無しさん mailto:sage [2014/05/02(金) 22:47:27.13 ID:WJNK/tJJ.net]
型チェック?なぜそんなことをしなければいけないのか

833 名前:デフォルトの名無しさん mailto:sage [2014/05/03(土) 09:45:39.59 ID:gqLjB/uh.net]
流石 __len__ すら知らずにアンチを気取るマヌケは言うことが違うなw

834 名前:デフォルトの名無しさん mailto:sage [2014/05/04(日) 13:01:51.00 ID:Dz1meMUl.net]
なんかガキの罵倒スレになってきたな。

835 名前:デフォルトの名無しさん [2014/08/27(水) 21:38:43.96 ID:+mS2YVhy.net]
外部関数とメンバ関数を一々覚えんのがめんどいよな

836 名前:デフォルトの名無しさん [2015/01/25(日) 09:57:22.57 ID:wuFk28jJ.net]
Pythonってリスト内包表記が中途半端で使いにくい。

array = [1, 2, 3, 4, 5]
[x*2 for x in array if x<3]
これはmap とfilterの組み合わせで、プログラミング言語として考えたらこんな複雑な構文は面倒くさいだけだし、
x*2 for x の部分をlambdaだと考えたら仮引数が後ろに来ていて非常に読みにくい。

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[c*2 for c in r] for r in matrix]
数式に近い書き方なんだと考えたら考えたで、行列のような多次元データ構造を扱うには
内包表記をネストしないといけなくなって複雑になる。結局何をやるにしてもnumpy頼みになる。

837 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 10:16:36.81 ID:Z3bPH+iB.net]
Pythonの内包表記が中途半端ってどういうこと?
Haskellの内包表記も似たようなもんだよ
それに慣れると(Haskellにおいてすら)mapやfilterより読みやすい

[x * 2 | x <- array, x < 3]
map (* 2) $ filter (< 3) $ array

838 名前:デフォルトの名無しさん [2015/01/25(日) 10:20:26.56 ID:JhgO84F7.net]
>x*2 for x の部分をlambdaだと考えたら仮引数が後ろに来ていて非常に読みにくい。

そんな香具師いるんかね
むしろ
[2*x for x in array if x<3]
とかのとき
[('%s'*x) for x in array if x<3]
と解釈されるはずだと思うところが
ひょっとすると
['%s'%(x for x in array if x<3)]
の可能性も捨てきれないと思ってしまう

839 名前:デフォルトの名無しさん [2015/01/25(日) 10:21:40.81 ID:JhgO84F7.net]
なんか切り貼りしてたらおかしくなったので訂正

むしろ
['%s'%x for x in array if x<3]
とかのとき
[('%s'%x) for x in array if x<3]
と解釈されるはずだと思うところが
ひょっとすると
['%s'%(x for x in array if x<3)]
の可能性も捨てきれないと思ってしまう

840 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 11:10:24.86 ID:wuFk28jJ.net]
>>837
数式に親しくないプログラマにとっては「今のところ」後者のmapとfilterで平凡に書く方が分かりやすいと思うけどな。
Haskellでは後者の書き方でも色々と非凡になるけどw
(今のところってのは、昔はそもそも無名関数自体一般的じゃなくてループの方が分かりやすい時代だった。
今は無名関数くらい誰でも使う。何が分かりやすいかも時代で変わってくるから、時代に合わせたプログラミング大事)

本題。中途半端って言ったのは、そこじゃなくて。
今、内包表記を苦もなくスラスラ読めるプログラマってどんな奴だ?
→数式を読めるプログラマだろ
→数式を読めるプログラマはどんなプログラムを書く?
→数学の問題を解くプログラムだろ
→数学の問題をプログラミングするなら、行列の各要素を二倍するなんてこう書きたいだろ(Rのように)
matrix*2

841 名前:デフォルトの名無しさん [2015/01/25(日) 11:28:13.18 ID:JhgO84F7.net]
>数式に親しくないプログラマ

そんな香具師いるんかね



842 名前:デフォルトの名無しさん [2015/01/25(日) 11:30:30.53 ID:JhgO84F7.net]
>>840

>→数学の問題をプログラミングするなら、行列の各要素を二倍するなんてこう書きたいだろ(Rのように)
>matrix*2

それこそ numpy でいいやん

843 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 11:35:09.48 ID:U0GW9T6b.net]
多分日本語的に読みづらいんだと思うよ。結果が先に来るから。

844 名前:デフォルトの名無しさん [2015/01/25(日) 11:37:21.13 ID:3PovQon7.net]
日本で産まれた(ω) Ruby にも後置 if とかあるのに

845 名前:デフォルトの名無しさん mailto:sage [2015/01/25(日) 11:44:25.36 ID:U0GW9T6b.net]
Ruby は大概書きたい方法があるじゃん

846 名前:デフォルトの名無しさん mailto:sage [2015/01/31(土) 08:33:30.81 ID:xuw3avh8.net]
いくらPythonにへびネタが多いとはいえこういう表紙は駄目だろう
冗談抜きで表紙が気持ち悪くて手に取れないレベル
これが原因でPythonあるいは授業に悪い印象しか残らなかったら学生が可哀想
www.skylit.com/mathandpython.html
https://www.packtpub.com/big-data-and-business-intelligence/learning-python-data-analysis

847 名前:デフォルトの名無しさん [2015/01/31(土) 08:37:29.46 ID:YMt5PyZL.net]
カバー付ければ良いだけじゃん
全編写真集なら嫌だけど

848 名前:デフォルトの名無しさん mailto:sage [2015/01/31(土) 09:24:12.94 ID:fHA0y3z4.net]
ジャポニカ学習帳みたいに表紙は植物だけにすればいい
O'Reillyも

849 名前:デフォルトの名無しさん [2015/01/31(土) 09:34:03.69 ID:YMt5PyZL.net]
ああ
アンチすれだったか
いつも調子で書き込んでたゎ
ecx.images-amazon.com/images/I/518wm5u3TjL.jpg
www.chrischeng.com/wp-content/uploads/2012/11/Python-271x300.jpg

850 名前:デフォルトの名無しさん mailto:sage [2015/01/31(土) 10:29:16.24 ID:Q5cOubfa.net]
アンチじゃないが表紙ひどいwww

851 名前:デフォルトの名無しさん mailto:sage [2015/01/31(土) 12:23:49.26 ID:Klh2e7Hk.net]
本当だ、何でこんなリアル志向



852 名前:デフォルトの名無しさん mailto:sage [2015/01/31(土) 12:37:18.71 ID:dgL1phRR.net]
>>846
俺は別に平気だけど、もはや何の本か分からんなw

853 名前:デフォルトの名無しさん mailto:sage [2015/02/04(水) 13:42:49.77 ID:5pZRcUKP.net]
>>841
いまどき香具士って・・・






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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