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

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

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

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

Q&A

解決済

1回答

227閲覧

この[]は何でしょうか。

iaduohcp

総合スコア17

Python 3.x

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

0グッド

0クリップ

投稿2018/05/21 00:07

こちらのコードのreturn文内の[]で何が行われてるのかが分かりません。

python

1lis = [2, -10, 5, -3, 6, 7, -8] 2 3def func(n): 4 return n**2 * (1, -1)[n < 0] 5 6lis = list(map(func, lis)) 7# [4, -100, 25, -9, 36, 49, -64]

s=(1,2,3,4,5,6,7)[1<9] #2
s=(1,2,3,4,5,6,7)[5<<0] #6
適当に文を作って答えを探りましたが謎は解けませんでしたので、分かります方教えて頂けないでしょうか。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Pythonのbool型(真偽値型)の正体は整数型です。

https://docs.python.jp/3/library/stdtypes.html#bltin-boolean-values

数値処理のコンテキスト (例えば算術演算子の引数として使われた場合) では、これらはそれぞれ 0 および 1 と同様に振舞います。


(1,2,3,4,5,6,7)[1<9] は '1<9'が真なので (1,2,3,4,5,6,7)[1] に等しく、タプル(1,2,3,4,5,6,7)のindex1番目の要素、つまり2番目の要素2になります。

(1, -1)[n < 0]はnが負値なら-1、0以上なら1を返します。

投稿2018/05/21 00:15

quickquip

総合スコア11038

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

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

iaduohcp

2018/05/21 00:32

真偽値を使ってindexを書いてたのですね。回答有難うございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問