1 名前:デフォルトの名無しさん mailto:sage [2013/01/21(月) 16:36:03.35 ] このスレッドは、他のスレッドでは書き込めない超低レベル、 もしくは質問者自身何が何だか分からない質問を勇気を持って書き込むスレッドです。 へび使いが優しくコメントを返しますが、お礼は Python の布教と初心者の救済をお願いします。 エラーを解決したいときはエラー表示や環境(バージョン/IDE or command line)を略さずに書き込んで下さい。 騙りが頻発しています。質問する方は一時的なトリップをつけることを検討して下さい。 次スレは >>985 辺りで 前スレ くだすれPython(超初心者用) その15 toro.2ch.net/test/read.cgi/tech/1350718465/ 関連スレ Pythonのお勉強 Part48 toro.2ch.net/test/read.cgi/tech/1358750040/ 【実験台】 Python 3.0 のお勉強 Part 1 【非互換】 toro.2ch.net/test/read.cgi/tech/1235050215/ ◆関連リンク Python の Home Page ttp://www.python.org/
636 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 17:18:07.66 ] pass
637 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 17:31:54.49 ] >>626 L = ["abc%d" % i for i in range(10)]
638 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 17:41:28.13 ] なぜ人が書いてることをまた書くのか
639 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 17:42:34.32 ] 脳が腐敗してるから
640 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 17:54:17.19 ] L = map(lambda x:'abc%d'%x,range(10))
641 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 17:57:47.03 ] ["abc{}".format(i) for i in range(10)] list(map("abc{}".format, range(10)))
642 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 17:58:56.75 ] もういいぞクズ
643 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:00:48.44 ] TIMTOWTDIですね。わかります
644 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:03:20.59 ] 同じこと連呼してドヤ顔とか… データ構造やアルゴリズムを変えてみてから言えよ
645 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:04:30.87 ] 文字列リテラルにメソッド呼び出しするの気持ち悪い
646 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:06:27.65 ] オブジェクトがメソッドを持つのは当然のこと
647 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:17:59.54 ] 手続き脳にオブジェクト指向やらすと起こる定番の拒否反応
648 名前: 忍法帖【Lv=6,xxxP】(1+0:5) [2013/03/17(日) 18:26:55.10 ] ファイル一覧に対して何か処理するメソッドを作成したいです。 cl.ly/code/3R0f3S2I161j サブディレクトリ含む場合は出来るのですが、サブディレクトリなしの場合が出来ません。 こんなエラー cl.ly/text/2e0F0Q101l3c どこがダメでしょうか。
649 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:33:40.26 ] map関数は気持ち悪いなあ どこがどうと言えないのだけど
650 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:37:08.01 ] オブジェクト脳に関数型やらすと起こる定番の拒否反応
651 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:39:01.59 ] >>648 os.path.joinの第二引数がリストになってるよ
652 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:39:13.06 ] map, filter, reduceに慣れてないだけw
653 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:39:25.63 ] 論理的には文字列にメソッドは気にならないんだけど コードの見た目が壊滅的に気持ち悪い 記号の演算子乱用する言語と同じくらい気持ち悪い
654 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:40:55.64 ] なぜ気持ち悪いのか、どう気持ち悪いのか言えよ。ただの馬鹿じゃん
655 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:44:06.71 ] mapは文字通り集合から集合への写像なのに何が気持ち悪いのか理解不能
656 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:45:38.30 ] 生理的嫌悪感を感じるんだ これは不細工が嫌いとかそういうレベルの感情だからどうしようもない
657 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:46:29.71 ] それならpythonを使うべきではないね。仕事なら別だが
658 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:50:46.49 ] mapは気持ちわるくないけど map("abc{}".format, range(10)) ともなると "abc{}".format のアリティが文字列リテラルの中の {} の数によって決められるのがあれかも
659 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:51:18.44 ] map()が気持ち悪いってプログラミングセンス皆無だぞ
660 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:52:44.49 ] append とか join はぜんぶ関数にしてほしい。 append(lst, elem) join(lst1, lst2) とかしたい。
661 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 18:59:41.74 ] >>660 joinを呼ぶ文字列は区切り文字であってリストじゃない つまりlst1とlst2を連結するメソッドではない
662 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:00:51.44 ] アホか むしろシーケンスがlenメソッド持つべきだろ 頭湧いてんのか
663 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:03:18.84 ] >>661 文字列の連結は + にしてほしい。 str1 + str2
664 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:04:40.22 ] えっ?
665 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:05:45.15 ] えぇ
666 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:06:21.59 ] もともとそうだったか。
667 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:06:27.70 ] >>663 だからそれは出来るだろ。処理系によって滅茶苦茶おそくなるが というか、お前はPythonやオブジェクト指向言語を使わないほうが良いと思う まあ、オブジェクト指向だからこそ演算子のオーバーロードができるわけだから もうプログラミング辞めたほうがいいと思う
668 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:06:40.09 ] この程度の頭で喋ってるのかい。
669 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:08:02.96 ] 呆れたからご飯のし支度でもするわ
670 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:08:50.54 ] # unko.py def append(a, e): a.append(e) def join(s, a): s.join(a) def map(*a, **b): raise Exception('Hey motherfucker! Do NOT use "map" function.') from unko import *
671 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:12:08.76 ] >>627 >>628 ありがとうございます。 リスト末尾への追加はappend()を使うんですね。すっかり頭から抜けていました。 (1)のL = [None]*10 を使って最初のループに当てはめてみてもうまくいきました。 メソッドを使わずに代入だけでリスト内の構成を変えようとした事が失敗の原因だったんですね。 まだ内包表記まで進んでいないので内包表記は後日見直してみます。 本当にありがとうございました。
672 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:21:35.26 ] >>670 append([1, 2, 3], 4) の結果はどこに行くの。
673 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:28:36.77 ] どっか行くの?
674 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:37:07.83 ] >>659 何で? こんな変な動作をする関数は Cなどの従来一般的な開発言語にはないでしょ。
675 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:38:17.94 ] append(a, e)のaやreturnを書き忘れるあたりおそらくRuby初心者スレじゃないかと思う
676 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:40:54.31 ] >>674 残念ながらC言語以前からありますw
677 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:42:12.69 ] list.sort()とsorted(list)の違い
678 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:44:26.62 ] lispってCより15年近く古いよね
679 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:49:47.71 ] >>673 append([1, 2, 3], 4) に返して欲しいのは [1, 2, 3, 4] だよ。 implicit に a を書き換えるんじゃなくて。 関数定義するならこんな感じ。 def append(a, e): return a + [e]
680 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:51:13.44 ] map関数がやってることもこれとほぼ同じなんだけど何故かしっくりこないらしい 人間の脳味噌って不可思議だね
681 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:52:03.61 ] >>679 その関数に何の意味があるんだ…
682 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:58:51.65 ] >>681 じゃあ、a.append(e) に何の意味があるんだ?
683 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 19:59:22.36 ] >>680 の言う「これ」ってどれ?
684 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:02:16.89 ] >>682 aのメソッドであることに意味がある >>660 みたいな馬鹿には一生わからないだろうが
685 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:02:38.43 ] とりあえずうるさいから全員黙れ 嫌なら使うのやめろ 士ね
686 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:04:33.84 ] >>684 a のメソッドであることにどんな意味があるの?
687 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:14:47.84 ] >>680 の「これ」が>>679 だとしたら mapにたいして深刻な勘違いをしていると言わざるを得ない >>686 リストしか使わない処理だから。読むときも書くときも他のことを考えなくて済む リストを継承したクラスでも同じことが出来る >>660 みたいな馬鹿には一生わからないだろうが
688 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:16:32.91 ] >>685 レス乞食にはpassを食わせろ
689 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:20:25.32 ] pass
690 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:21:09.87 ] とりあえずうるさいから全員黙れ 嫌なら使うのやめろ 士ね
691 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:29:58.32 ] pass
692 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:31:44.87 ] 盲人の手を引く盲人
693 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:39:19.17 ] ここまで俺様の自演w
694 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 20:40:48.49 ] while 1: pass
695 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 21:35:45.40 ] >>697 じゃあなんで len は lst.len() みたいにならないんだ? ぜんぶメソッドに統一すればいいじゃないか。
696 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 21:38:57.07 ] str.len()も無くて最初探しまくったのは悪い思い出
697 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 21:40:50.78 ] Ruby のせいですね わかります
698 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 21:49:21.13 ] .NETやJavaもそうじゃないか。まあどっちでもすぐ慣れるのだけど
699 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 22:01:14.57 ] .NET や Java がそうだから Pythonも、ってのは理由にはならないだろ。
700 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 22:09:50.79 ] >>699 >>698 は>>697 へのレス。あと >>698 != >>695
701 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 22:33:10.94 ] >>695 mail.python.org/pipermail/python-3000/2006-November/004643.html
702 名前:デフォルトの名無しさん mailto:sage [2013/03/17(日) 23:37:17.23 ] L = map(lambda x:'abc%d'%x,range(10))
703 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 02:34:54.80 ] うるせえ死ね
704 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 07:02:15.51 ] >>701 それ読むとグイドは x.len() キモイって言ってるけど、 同じ理由で lst.append(elem) もキモイんだけど。 それと、lst.append(elem) が lst の内容を陰に書き換えるのもキモイ。
705 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 07:15:09.54 ] ヴァンホーテンさんはBDFLとして何かおもしろいこと言わなきゃいけないんだから 発言に多少齟齬があっても気にしないのが大人としての優しさ
706 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 07:26:54.20 ] Pythonのメソッドをぜんぶ関数にしたらカッコのないLISPになっちゃう。
707 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 07:38:38.92 ] lst += [elem]
708 名前: 忍法帖【Lv=7,xxxP】(1+0:5) [2013/03/18(月) 08:36:15.99 ] >>651 サンクス!!
709 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 08:49:49.68 ] >>704 副作用があるときメソッド、副作用がないとき関数。 例:lst.sort() と sorted(lst)
710 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 09:02:53.93 ] str.unicode() は?
711 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 09:13:25.39 ] >>710 そんなメソッドstrにあったか?
712 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 09:33:26.81 ] unicode(str)は副作用がないが str.decode()も副作用がない
713 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 09:50:27.45 ] 下らないこと書いてないで働けよ社畜ども
714 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 11:43:53.37 ] フリーランスですが何か
715 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 12:10:08.57 ] 最近はフリーのニートとかあるんだね 僕?お昼休みですけど ところでお前ら死ね
716 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 13:31:48.40 ] len()やmax()はリスト以外にも同じように使える appendはリストだけの操作だから全体に使えるようにする意味がない 全て関数にすべきとか、もうクラスを一度も書いたことがないC言語しか知らない人間の言うことだから どんな議論も無意味だけど こんな瑣末なことが気持ち悪いと思うのならPythonは使うべきではない ま、そんな奴は全ての言語について何かしら本質でないことに対して気持ち悪いと言うのだろうが それをハッカーがよくやる真っ当な言語ディスだと勘違いしてるのならご愁傷様
717 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 13:55:19.27 ] Guido脂肪w
718 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:07:59.13 ] そもそも le nが string にも list にも同じように使えるのがおかしい。
719 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:16:59.92 ] どこが?
720 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:35:17.36 ] string ならリストに変換してリストの len を取れば足りるだろ。 "abc" → ["a", "b", "c"] → len(["a", "b", "c"]) → 3 みたいに。len が string の長さを測る必要ない。
721 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:36:38.18 ] string[i]でアクセス出来るのになんでリストに変換しなきゃいけないのかとw stringに対して酷い誤解をしてるよ
722 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:39:42.39 ] i が分かるのは string の長さが分かってるからでしょ。
723 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:42:28.81 ] だから for i in range(len(list)): list[i] は出来るのに for i in range(len(string)): string[i] がダメな理由は何? 馬鹿すぎてお話にならないが
724 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:45:58.72 ] 最低限与えられるファンダメンタルな機能としては不要だってこと。
725 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:48:20.48 ] そう思うのならPythonを使うべきではないね、残念ながら。
726 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:49:45.49 ] それはおまいが決めることではない。
727 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:50:29.97 ] >>724 こそお前が決めることではない そう決めるのならPythonを使うべきではない。それだけ
728 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 14:59:18.39 ] 今回の議論でいろいろ Python の問題点が見えてきたよ。 それらはすべて自分のライブラリにフィードバックしてるから。 ありがとう!
729 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 15:00:41.17 ] プロフェッショナルが作った洗練された組み込み関数を 全て台無しにする糞ライブラリの完成だなw
730 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 15:03:24.35 ] 組み込み関数に対して自分用のラッパ書くとかもはやなんでその言語使ってるのか分からないレベル
731 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 15:11:17.51 ] 結果が同じでも色んな書き方あるようだけど やっぱ速度も違ってくるのかな?
732 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 15:21:03.70 ] 糖衣構文でもないかぎり速度は変わるに決まってる
733 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 15:21:39.54 ] もちろん >>> from timeit import timeit >>> timeit(' ["abc" + str(i) for i in range(10)] ') 12.046442985534668 >>> timeit(' ["".join(("abc", str(i))) for i in range(10)] ') 16.259288787841797 >>> timeit(' ["".join(["abc", str(i)]) for i in range(10)] ') 19.62903094291687
734 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 15:26:57.04 ] >>733 ありがと。 けっこう差が出るもんだね
735 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 15:29:25.29 ] ソースコードは Python の実装(PyPy、Jython、IronPython、Pyrex、 Psyco など)ごとの欠点を引き出さないように書くべきである。たとえば、 CPython が a+=b や a=a+b などの文字列連結をインプレイス処理して、効 率よく動作する実装に依存してはならない。これでは Jython での動作が遅く なってしまう。パフォーマンスに敏感な部分では、''.join() を使うべき である。こう書いておけば、様々な実装において、連結処理は線形時間で 処理できる。
736 名前:デフォルトの名無しさん mailto:sage [2013/03/18(月) 15:32:21.69 ] 使いもしない処理系のことを考えてプログラミングするの?やだー