11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

”YNeos”について

Last updated at Posted at 2018-11-02

PYthonに限った話ではないですが、小ネタです。

YNeosとは

この間、競技プログラミングの提出一覧を見ていたらこんなものを見つけました。

'YNeos'

いねおす?
ちょっと解説してみます。

概要

a=3;b=2
print('YNeos'[a<b::2])

なにか条件式を与えて
Trueなら「No」
Falseなら「Yes」を出力します。
(逆だったら良かったのにね)

わかりきった解説

TrueとFalseは整数(int)であり、それぞれ1,0を表します。

また、Pythonにはスライスという技法があり、

始点+コロン2つ+数値(ステップ値)で
始点位置から要素をステップ値個ごとに取り出す。
([1::2]なら1番目の要素から2個ごとに取り出す)
というものがあります。

したがって上記の場合は

a<bがTrue(1)なら
1番目の要素と3番目の要素を取り出すので「No」
a<bがFalse(0)なら
0、2、4番目の要素を取り出すので「Yes」
となるのでした。めでたし

利点としてはコードを若干短くできるという点です。
(主に競プロとかで)

やっぱりなんか気持ち悪い

ということで

a=3;b=2
print('YNeos'[not(a<b)::2])

否定が気にならない人はここに脳死で条件式を突っ込めばだいじょうぶ!

11
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?