質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

3回答

350閲覧

print([偽, 真][条件])を3分岐のケースに応用できるでしょうか。

Algeot

総合スコア21

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2021/06/26 09:02

例えば, aとbの大小を比較して不等式を表示したい時, 次のように書けます.

Python

1a = 1 2b = 2 3print(['a < b', 'a > b'][a > b])

では, このif文を使わない省略形式(?)を用いて, 分岐が3つとなるコードが書けますでしょうか.
上の例ならばa<b, a>b, a=bを区別するコードが欲しいです.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

こんな感じです。

python

1>>> def cmp(a, b): 2... print(['a < b', 'a = b', 'a > b'][(a > b) + (a >= b)]) 3... 4>>> cmp(0,1) 5a < b 6>>> cmp(1,1) 7a = b 8>>> cmp(1,0) 9a > b

投稿2021/06/26 09:37

ppaul

総合スコア24666

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Algeot

2021/06/26 12:24

回答ありがとうございました!
guest

0

ベストアンサー

a<b, a>b, a=bを区別するコードが欲しいです.

print(['a < b', 'a > b', 'a == b'][a > b if a != b else 2])

投稿2021/06/26 09:26

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Algeot

2021/06/26 12:22

最も素早い回答でしたのでベストアンサーとしました! 納得いたしました.
guest

0

python 2.x の頃は組み込み関数に cmp というものがありました。

代替実装
Porting guide: cmp() function

['>', '==', '<'][(a > b) - (a < b)]

  • 等しい時: (False - False) = 0 - 0 = 0
  • 左が大きい時: (True - False) = 1 - 0 = 1
  • 右が大きい時: (False - True) = 0 - 1 = -1 (リストの添字 -1 は末尾 -> 2)

bool 値の True, False を 1, 0 の整数として扱っている点については、ブール値
Python での bool は、int のサブタイプで、意図的に 1, 0 として扱えるように設計されてます。

投稿2021/06/26 09:46

teamikl

総合スコア8664

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Algeot

2021/06/26 12:24

コードの説明が分かりやすかったです. 真理値を計算できるということですね. 色々と応用できそうな気がしてきました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問