580 :デフォルトの名無しさん[sage]:2006/07/26(水) 00:33:38
普通に三項演算子 ? : いれた方がよかったんだと思うけど、そうできない理由があったのか?
581 :デフォルトの名無しさん[sage]:2006/07/26(水) 00:37:57
>>580
ああすごい同意。
構文入れるんだよ。
583 :デフォルトの名無しさん[sage]:2006/07/26(水) 00:44:31
つか、一種の3項演算子じゃん。
[x for y in z] とかとも類似する構文だし、俺はあれでいいと思うけどなぁ。。。
584 :デフォルトの名無しさん[sage]:2006/07/26(水) 00:45:26
>581
とか? (本音を言うと誰にも使って欲しくない)
585 :デフォルトの名無しさん[sage]:2006/07/26(水) 00:46:03
? : が既に使われててダメだったなら
C then X else Y
みたいにできなかったのか疑問
条件が真ん中に来るとか見づらいよ……
586 :デフォルトの名無しさん[sage]:2006/07/26(水) 00:46:09
別にCに合わせる必要はないと思うよ。演算子関係ではCと違う部分がいっぱいあるから
半端に似せて「Cと同じだ」とか誤解を招くのはよろしくないと思う。
587 :デフォルトの名無しさん[sage]:2006/07/26(水) 00:48:42
"x for y in z"
← ←
データの流れが見える
"X if C else Y"
↑ ↑
分かれていて嫌
588 :デフォルトの名無しさん[sage]:2006/07/26(水) 00:57:28
>>587
でももう決まったことだし、個人的にはあまり気にしないで使うことになるだろうな。
591 :デフォルトの名無しさん[sage]:2006/07/26(水) 01:07:32
初めてリスト内包を見たときは「何じゃこりゃ、ワケわかめ」という印象だったけど
もう慣れてしまった。今ではリスト内包は直観的で分かりやすいと感じる。
ずっと Guido のセンスで取捨選択してきたわけだし、ぶっちゃけ今のところこれといって
今度の新しい三項演算子も慣れたら普通だと感じるようになるんジャマイカ。
592 :デフォルトの名無しさん[sage]:2006/07/26(水) 01:13:04
X if C else Y
「Xなんだよ! まあCだったらの話だけどな そうじゃなければYでよろしく」
593 :デフォルトの名無しさん[sage]:2006/07/26(水) 01:15:11
594 :デフォルトの名無しさん[sage]:2006/07/26(水) 01:16:06
[x for y in z]
↑
[x for x in original_list if x>2 and x<5]
595 :591[sage]:2006/07/26(水) 01:37:07
X if C else Y を使うのはきっと式の中がメインになるんだろうな。
functor = lambda x: x+1 if y > 0 else lambda x: x-1 if y < 0 else lambda x: x
とか、
delta = Numeric.array([[1 if i == j else 0 for i in range(M)] for j in range(N)], Numeric.Float32)
みたいな。>>593の言う通り、用例を考えていたらもう慣れてきた希ガスw
596 :591[sage]:2006/07/26(水) 01:54:02
q, r = divmod(n, 10)
print "%d%s" % (n, "th" if q == 1 else "st" if r == 1 else "nd" if r == 2 else "rd" if r == 3 else "
th")
たくさん if ... else が続く場合はなかなか読みやすい希ガス。
601 :デフォルトの名無しさん[sage]:2006/07/26(水) 11:08:59
>>596
その書き方が許されるとすると、かなり応用力がありそうですね。
596がすでにぱっと見ではよく分からない
602 :デフォルトの名無しさん[sage]:2006/07/26(水) 13:39:10
やっぱり、判定式が真ん中に来ると読みにくいな。
A = if C then B else D
603 :デフォルトの名無しさん[sage]:2006/07/26(水) 14:03:57
>>596
三項演算子いれて、
print "%d%s" % (i, r == 1 ? "st" : r == 2 ? "nd" : r == 3 ? "rd" : "th")
にしたほうが見やすくない?
607 :デフォルトの名無しさん[sage]:2006/07/26(水) 15:15:14
>>602
A = B if C else D だと
CならばDと目が流れちゃうかもかも。
まあ、慣れれってことか。
608 :デフォルトの名無しさん[sage]:2006/07/26(水) 15:28:49
まあ、ハズレのときはNoneが返る形ならば、
A = B or D で済むんだけどねぇ。
BがNoneならDって使い方。これは結構便利でよく使ってるんだけども。
いまだに
A = B and D は使ったことがないけども。
609 :デフォルトの名無しさん[sage]:2006/07/26(水) 15:49:33
>>596
> たくさん if ... else が続く場合はなかなか読みやすい希ガス。
おお!まさにそう思うよ!急にこの演算子が大好きになった。
残念ながら増田民はそんなプログラミングリテラシー高くないから ブログでやりな。