条件に基づいてリストからサンプルを取得しようとしています。簡単にできるはずですが、次のようにできません。
a = [2,4,5,9,1,6,4]
b = 6
c = [x for x in a if a < b]
基本的に、6 未満の値を含む新しいリストが必要です。何か提案はありますか?
条件に基づいてリストからサンプルを取得しようとしています。簡単にできるはずですが、次のようにできません。
a = [2,4,5,9,1,6,4]
b = 6
c = [x for x in a if a < b]
基本的に、6 未満の値を含む新しいリストが必要です。何か提案はありますか?
または、別の方法:
>>> a = [2,4,5,9,1,6,4]
>>> b = 6
>>> c = filter(lambda x: x < b, a)
>>> c
[2, 4, 5, 1, 4]
イグナシオが指摘したように、あなたはほとんどそれを持っていました:
>>> c = [x for x in a if x < b]
>>> c
[2, 4, 5, 1, 4]
リスト内包表記は、このループをより長く記述する方法です。
>>> c = []
>>> for x in a:
... if x < b:
... c.append(x)
...
>>> c
[2, 4, 5, 1, 4]
あなたが逃しました。シーケンスではなく、各要素を比較する必要があります。
c = [x for x in a if x < b]
ええと、そうif x < b
ですか。また、配列 a の値が整数ではなく文字列であるという問題もあります。それで:
[x for x in a if int(x)<b]