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

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

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

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

Q&A

解決済

1回答

2132閲覧

リストの内包表記で ">" を使う場合

BlueKunagisa

総合スコア1

Python 3.x

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

0グッド

0クリップ

投稿2020/06/10 11:41

python3.x で

リストの数字から
3より大きいものだけを
全て足したい

と考えています。
内包表記を勉強しているので下記のように書いてみました。

python3.x

1x = [-3,-2,-1,0,1,2,3,4,5,6,] 2y = [y for y in x if x > 3]  #3より大きい数字だけを取り出してリストに格納する←ここがわかりません 3print(sum(y))

これを実行すると

TypeError: '>' not supported between instances of 'list' and 'int'
というエラーが表示されます。

「○○より大きい数字のときに実行する」という場合、

python3.x

1x = [-3,-2,-1,0,1,2,3,4,5,6,] 2y =[] 3for i in x: 4 if i > 3: 5 y.append(i) 6print(sum(y))

と書く以外の効率的な方法がありましたら、どうかご教示ください。
内包表記について勉強し始めたばかりで、理解不足の箇所が多々あるとは存じますが
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

元のリストと比較しようとしてるからかと。
x > 3y > 3にしたらいいです。
また、y = filter(lambda n:n > 3, x)みたいな書き方もできます。

投稿2020/06/10 11:45

kuuote

総合スコア705

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

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

BlueKunagisa

2020/06/10 12:04

なるほど! 初歩的なミスにお付き合いくださってありがとうございます。 filterとlambdaも覚えます。 本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問