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


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

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



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 ]
使いもしない処理系のことを考えてプログラミングするの?やだー






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

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

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